<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>tango.text.locale.Core</title>
  <link href="html.css" rel="stylesheet" type="text/css">
</head>
<body>
<table><tr>
<td class="linescolumn"><a id="L1" href="#L1">1</a><a id="L2" href="#L2">2</a><a id="L3" href="#L3">3</a><a id="L4" href="#L4">4</a><a id="L5" href="#L5">5</a><a id="L6" href="#L6">6</a><a id="L7" href="#L7">7</a><a id="L8" href="#L8">8</a><a id="L9" href="#L9">9</a><a id="L10" href="#L10">10</a><a id="L11" href="#L11">11</a><a id="L12" href="#L12">12</a><a id="L13" href="#L13">13</a><a id="L14" href="#L14">14</a><a id="L15" href="#L15">15</a><a id="L16" href="#L16">16</a><a id="L17" href="#L17">17</a><a id="L18" href="#L18">18</a><a id="L19" href="#L19">19</a><a id="L20" href="#L20">20</a><a id="L21" href="#L21">21</a><a id="L22" href="#L22">22</a><a id="L23" href="#L23">23</a><a id="L24" href="#L24">24</a><a id="L25" href="#L25">25</a><a id="L26" href="#L26">26</a><a id="L27" href="#L27">27</a><a id="L28" href="#L28">28</a><a id="L29" href="#L29">29</a><a id="L30" href="#L30">30</a><a id="L31" href="#L31">31</a><a id="L32" href="#L32">32</a><a id="L33" href="#L33">33</a><a id="L34" href="#L34">34</a><a id="L35" href="#L35">35</a><a id="L36" href="#L36">36</a><a id="L37" href="#L37">37</a><a id="L38" href="#L38">38</a><a id="L39" href="#L39">39</a><a id="L40" href="#L40">40</a><a id="L41" href="#L41">41</a><a id="L42" href="#L42">42</a><a id="L43" href="#L43">43</a><a id="L44" href="#L44">44</a><a id="L45" href="#L45">45</a><a id="L46" href="#L46">46</a><a id="L47" href="#L47">47</a><a id="L48" href="#L48">48</a><a id="L49" href="#L49">49</a><a id="L50" href="#L50">50</a><a id="L51" href="#L51">51</a><a id="L52" href="#L52">52</a><a id="L53" href="#L53">53</a><a id="L54" href="#L54">54</a><a id="L55" href="#L55">55</a><a id="L56" href="#L56">56</a><a id="L57" href="#L57">57</a><a id="L58" href="#L58">58</a><a id="L59" href="#L59">59</a><a id="L60" href="#L60">60</a><a id="L61" href="#L61">61</a><a id="L62" href="#L62">62</a><a id="L63" href="#L63">63</a><a id="L64" href="#L64">64</a><a id="L65" href="#L65">65</a><a id="L66" href="#L66">66</a><a id="L67" href="#L67">67</a><a id="L68" href="#L68">68</a><a id="L69" href="#L69">69</a><a id="L70" href="#L70">70</a><a id="L71" href="#L71">71</a><a id="L72" href="#L72">72</a><a id="L73" href="#L73">73</a><a id="L74" href="#L74">74</a><a id="L75" href="#L75">75</a><a id="L76" href="#L76">76</a><a id="L77" href="#L77">77</a><a id="L78" href="#L78">78</a><a id="L79" href="#L79">79</a><a id="L80" href="#L80">80</a><a id="L81" href="#L81">81</a><a id="L82" href="#L82">82</a><a id="L83" href="#L83">83</a><a id="L84" href="#L84">84</a><a id="L85" href="#L85">85</a><a id="L86" href="#L86">86</a><a id="L87" href="#L87">87</a><a id="L88" href="#L88">88</a><a id="L89" href="#L89">89</a><a id="L90" href="#L90">90</a><a id="L91" href="#L91">91</a><a id="L92" href="#L92">92</a><a id="L93" href="#L93">93</a><a id="L94" href="#L94">94</a><a id="L95" href="#L95">95</a><a id="L96" href="#L96">96</a><a id="L97" href="#L97">97</a><a id="L98" href="#L98">98</a><a id="L99" href="#L99">99</a><a id="L100" href="#L100">100</a><a id="L101" href="#L101">101</a><a id="L102" href="#L102">102</a><a id="L103" href="#L103">103</a><a id="L104" href="#L104">104</a><a id="L105" href="#L105">105</a><a id="L106" href="#L106">106</a><a id="L107" href="#L107">107</a><a id="L108" href="#L108">108</a><a id="L109" href="#L109">109</a><a id="L110" href="#L110">110</a><a id="L111" href="#L111">111</a><a id="L112" href="#L112">112</a><a id="L113" href="#L113">113</a><a id="L114" href="#L114">114</a><a id="L115" href="#L115">115</a><a id="L116" href="#L116">116</a><a id="L117" href="#L117">117</a><a id="L118" href="#L118">118</a><a id="L119" href="#L119">119</a><a id="L120" href="#L120">120</a><a id="L121" href="#L121">121</a><a id="L122" href="#L122">122</a><a id="L123" href="#L123">123</a><a id="L124" href="#L124">124</a><a id="L125" href="#L125">125</a><a id="L126" href="#L126">126</a><a id="L127" href="#L127">127</a><a id="L128" href="#L128">128</a><a id="L129" href="#L129">129</a><a id="L130" href="#L130">130</a><a id="L131" href="#L131">131</a><a id="L132" href="#L132">132</a><a id="L133" href="#L133">133</a><a id="L134" href="#L134">134</a><a id="L135" href="#L135">135</a><a id="L136" href="#L136">136</a><a id="L137" href="#L137">137</a><a id="L138" href="#L138">138</a><a id="L139" href="#L139">139</a><a id="L140" href="#L140">140</a><a id="L141" href="#L141">141</a><a id="L142" href="#L142">142</a><a id="L143" href="#L143">143</a><a id="L144" href="#L144">144</a><a id="L145" href="#L145">145</a><a id="L146" href="#L146">146</a><a id="L147" href="#L147">147</a><a id="L148" href="#L148">148</a><a id="L149" href="#L149">149</a><a id="L150" href="#L150">150</a><a id="L151" href="#L151">151</a><a id="L152" href="#L152">152</a><a id="L153" href="#L153">153</a><a id="L154" href="#L154">154</a><a id="L155" href="#L155">155</a><a id="L156" href="#L156">156</a><a id="L157" href="#L157">157</a><a id="L158" href="#L158">158</a><a id="L159" href="#L159">159</a><a id="L160" href="#L160">160</a><a id="L161" href="#L161">161</a><a id="L162" href="#L162">162</a><a id="L163" href="#L163">163</a><a id="L164" href="#L164">164</a><a id="L165" href="#L165">165</a><a id="L166" href="#L166">166</a><a id="L167" href="#L167">167</a><a id="L168" href="#L168">168</a><a id="L169" href="#L169">169</a><a id="L170" href="#L170">170</a><a id="L171" href="#L171">171</a><a id="L172" href="#L172">172</a><a id="L173" href="#L173">173</a><a id="L174" href="#L174">174</a><a id="L175" href="#L175">175</a><a id="L176" href="#L176">176</a><a id="L177" href="#L177">177</a><a id="L178" href="#L178">178</a><a id="L179" href="#L179">179</a><a id="L180" href="#L180">180</a><a id="L181" href="#L181">181</a><a id="L182" href="#L182">182</a><a id="L183" href="#L183">183</a><a id="L184" href="#L184">184</a><a id="L185" href="#L185">185</a><a id="L186" href="#L186">186</a><a id="L187" href="#L187">187</a><a id="L188" href="#L188">188</a><a id="L189" href="#L189">189</a><a id="L190" href="#L190">190</a><a id="L191" href="#L191">191</a><a id="L192" href="#L192">192</a><a id="L193" href="#L193">193</a><a id="L194" href="#L194">194</a><a id="L195" href="#L195">195</a><a id="L196" href="#L196">196</a><a id="L197" href="#L197">197</a><a id="L198" href="#L198">198</a><a id="L199" href="#L199">199</a><a id="L200" href="#L200">200</a><a id="L201" href="#L201">201</a><a id="L202" href="#L202">202</a><a id="L203" href="#L203">203</a><a id="L204" href="#L204">204</a><a id="L205" href="#L205">205</a><a id="L206" href="#L206">206</a><a id="L207" href="#L207">207</a><a id="L208" href="#L208">208</a><a id="L209" href="#L209">209</a><a id="L210" href="#L210">210</a><a id="L211" href="#L211">211</a><a id="L212" href="#L212">212</a><a id="L213" href="#L213">213</a><a id="L214" href="#L214">214</a><a id="L215" href="#L215">215</a><a id="L216" href="#L216">216</a><a id="L217" href="#L217">217</a><a id="L218" href="#L218">218</a><a id="L219" href="#L219">219</a><a id="L220" href="#L220">220</a><a id="L221" href="#L221">221</a><a id="L222" href="#L222">222</a><a id="L223" href="#L223">223</a><a id="L224" href="#L224">224</a><a id="L225" href="#L225">225</a><a id="L226" href="#L226">226</a><a id="L227" href="#L227">227</a><a id="L228" href="#L228">228</a><a id="L229" href="#L229">229</a><a id="L230" href="#L230">230</a><a id="L231" href="#L231">231</a><a id="L232" href="#L232">232</a><a id="L233" href="#L233">233</a><a id="L234" href="#L234">234</a><a id="L235" href="#L235">235</a><a id="L236" href="#L236">236</a><a id="L237" href="#L237">237</a><a id="L238" href="#L238">238</a><a id="L239" href="#L239">239</a><a id="L240" href="#L240">240</a><a id="L241" href="#L241">241</a><a id="L242" href="#L242">242</a><a id="L243" href="#L243">243</a><a id="L244" href="#L244">244</a><a id="L245" href="#L245">245</a><a id="L246" href="#L246">246</a><a id="L247" href="#L247">247</a><a id="L248" href="#L248">248</a><a id="L249" href="#L249">249</a><a id="L250" href="#L250">250</a><a id="L251" href="#L251">251</a><a id="L252" href="#L252">252</a><a id="L253" href="#L253">253</a><a id="L254" href="#L254">254</a><a id="L255" href="#L255">255</a><a id="L256" href="#L256">256</a><a id="L257" href="#L257">257</a><a id="L258" href="#L258">258</a><a id="L259" href="#L259">259</a><a id="L260" href="#L260">260</a><a id="L261" href="#L261">261</a><a id="L262" href="#L262">262</a><a id="L263" href="#L263">263</a><a id="L264" href="#L264">264</a><a id="L265" href="#L265">265</a><a id="L266" href="#L266">266</a><a id="L267" href="#L267">267</a><a id="L268" href="#L268">268</a><a id="L269" href="#L269">269</a><a id="L270" href="#L270">270</a><a id="L271" href="#L271">271</a><a id="L272" href="#L272">272</a><a id="L273" href="#L273">273</a><a id="L274" href="#L274">274</a><a id="L275" href="#L275">275</a><a id="L276" href="#L276">276</a><a id="L277" href="#L277">277</a><a id="L278" href="#L278">278</a><a id="L279" href="#L279">279</a><a id="L280" href="#L280">280</a><a id="L281" href="#L281">281</a><a id="L282" href="#L282">282</a><a id="L283" href="#L283">283</a><a id="L284" href="#L284">284</a><a id="L285" href="#L285">285</a><a id="L286" href="#L286">286</a><a id="L287" href="#L287">287</a><a id="L288" href="#L288">288</a><a id="L289" href="#L289">289</a><a id="L290" href="#L290">290</a><a id="L291" href="#L291">291</a><a id="L292" href="#L292">292</a><a id="L293" href="#L293">293</a><a id="L294" href="#L294">294</a><a id="L295" href="#L295">295</a><a id="L296" href="#L296">296</a><a id="L297" href="#L297">297</a><a id="L298" href="#L298">298</a><a id="L299" href="#L299">299</a><a id="L300" href="#L300">300</a><a id="L301" href="#L301">301</a><a id="L302" href="#L302">302</a><a id="L303" href="#L303">303</a><a id="L304" href="#L304">304</a><a id="L305" href="#L305">305</a><a id="L306" href="#L306">306</a><a id="L307" href="#L307">307</a><a id="L308" href="#L308">308</a><a id="L309" href="#L309">309</a><a id="L310" href="#L310">310</a><a id="L311" href="#L311">311</a><a id="L312" href="#L312">312</a><a id="L313" href="#L313">313</a><a id="L314" href="#L314">314</a><a id="L315" href="#L315">315</a><a id="L316" href="#L316">316</a><a id="L317" href="#L317">317</a><a id="L318" href="#L318">318</a><a id="L319" href="#L319">319</a><a id="L320" href="#L320">320</a><a id="L321" href="#L321">321</a><a id="L322" href="#L322">322</a><a id="L323" href="#L323">323</a><a id="L324" href="#L324">324</a><a id="L325" href="#L325">325</a><a id="L326" href="#L326">326</a><a id="L327" href="#L327">327</a><a id="L328" href="#L328">328</a><a id="L329" href="#L329">329</a><a id="L330" href="#L330">330</a><a id="L331" href="#L331">331</a><a id="L332" href="#L332">332</a><a id="L333" href="#L333">333</a><a id="L334" href="#L334">334</a><a id="L335" href="#L335">335</a><a id="L336" href="#L336">336</a><a id="L337" href="#L337">337</a><a id="L338" href="#L338">338</a><a id="L339" href="#L339">339</a><a id="L340" href="#L340">340</a><a id="L341" href="#L341">341</a><a id="L342" href="#L342">342</a><a id="L343" href="#L343">343</a><a id="L344" href="#L344">344</a><a id="L345" href="#L345">345</a><a id="L346" href="#L346">346</a><a id="L347" href="#L347">347</a><a id="L348" href="#L348">348</a><a id="L349" href="#L349">349</a><a id="L350" href="#L350">350</a><a id="L351" href="#L351">351</a><a id="L352" href="#L352">352</a><a id="L353" href="#L353">353</a><a id="L354" href="#L354">354</a><a id="L355" href="#L355">355</a><a id="L356" href="#L356">356</a><a id="L357" href="#L357">357</a><a id="L358" href="#L358">358</a><a id="L359" href="#L359">359</a><a id="L360" href="#L360">360</a><a id="L361" href="#L361">361</a><a id="L362" href="#L362">362</a><a id="L363" href="#L363">363</a><a id="L364" href="#L364">364</a><a id="L365" href="#L365">365</a><a id="L366" href="#L366">366</a><a id="L367" href="#L367">367</a><a id="L368" href="#L368">368</a><a id="L369" href="#L369">369</a><a id="L370" href="#L370">370</a><a id="L371" href="#L371">371</a><a id="L372" href="#L372">372</a><a id="L373" href="#L373">373</a><a id="L374" href="#L374">374</a><a id="L375" href="#L375">375</a><a id="L376" href="#L376">376</a><a id="L377" href="#L377">377</a><a id="L378" href="#L378">378</a><a id="L379" href="#L379">379</a><a id="L380" href="#L380">380</a><a id="L381" href="#L381">381</a><a id="L382" href="#L382">382</a><a id="L383" href="#L383">383</a><a id="L384" href="#L384">384</a><a id="L385" href="#L385">385</a><a id="L386" href="#L386">386</a><a id="L387" href="#L387">387</a><a id="L388" href="#L388">388</a><a id="L389" href="#L389">389</a><a id="L390" href="#L390">390</a><a id="L391" href="#L391">391</a><a id="L392" href="#L392">392</a><a id="L393" href="#L393">393</a><a id="L394" href="#L394">394</a><a id="L395" href="#L395">395</a><a id="L396" href="#L396">396</a><a id="L397" href="#L397">397</a><a id="L398" href="#L398">398</a><a id="L399" href="#L399">399</a><a id="L400" href="#L400">400</a><a id="L401" href="#L401">401</a><a id="L402" href="#L402">402</a><a id="L403" href="#L403">403</a><a id="L404" href="#L404">404</a><a id="L405" href="#L405">405</a><a id="L406" href="#L406">406</a><a id="L407" href="#L407">407</a><a id="L408" href="#L408">408</a><a id="L409" href="#L409">409</a><a id="L410" href="#L410">410</a><a id="L411" href="#L411">411</a><a id="L412" href="#L412">412</a><a id="L413" href="#L413">413</a><a id="L414" href="#L414">414</a><a id="L415" href="#L415">415</a><a id="L416" href="#L416">416</a><a id="L417" href="#L417">417</a><a id="L418" href="#L418">418</a><a id="L419" href="#L419">419</a><a id="L420" href="#L420">420</a><a id="L421" href="#L421">421</a><a id="L422" href="#L422">422</a><a id="L423" href="#L423">423</a><a id="L424" href="#L424">424</a><a id="L425" href="#L425">425</a><a id="L426" href="#L426">426</a><a id="L427" href="#L427">427</a><a id="L428" href="#L428">428</a><a id="L429" href="#L429">429</a><a id="L430" href="#L430">430</a><a id="L431" href="#L431">431</a><a id="L432" href="#L432">432</a><a id="L433" href="#L433">433</a><a id="L434" href="#L434">434</a><a id="L435" href="#L435">435</a><a id="L436" href="#L436">436</a><a id="L437" href="#L437">437</a><a id="L438" href="#L438">438</a><a id="L439" href="#L439">439</a><a id="L440" href="#L440">440</a><a id="L441" href="#L441">441</a><a id="L442" href="#L442">442</a><a id="L443" href="#L443">443</a><a id="L444" href="#L444">444</a><a id="L445" href="#L445">445</a><a id="L446" href="#L446">446</a><a id="L447" href="#L447">447</a><a id="L448" href="#L448">448</a><a id="L449" href="#L449">449</a><a id="L450" href="#L450">450</a><a id="L451" href="#L451">451</a><a id="L452" href="#L452">452</a><a id="L453" href="#L453">453</a><a id="L454" href="#L454">454</a><a id="L455" href="#L455">455</a><a id="L456" href="#L456">456</a><a id="L457" href="#L457">457</a><a id="L458" href="#L458">458</a><a id="L459" href="#L459">459</a><a id="L460" href="#L460">460</a><a id="L461" href="#L461">461</a><a id="L462" href="#L462">462</a><a id="L463" href="#L463">463</a><a id="L464" href="#L464">464</a><a id="L465" href="#L465">465</a><a id="L466" href="#L466">466</a><a id="L467" href="#L467">467</a><a id="L468" href="#L468">468</a><a id="L469" href="#L469">469</a><a id="L470" href="#L470">470</a><a id="L471" href="#L471">471</a><a id="L472" href="#L472">472</a><a id="L473" href="#L473">473</a><a id="L474" href="#L474">474</a><a id="L475" href="#L475">475</a><a id="L476" href="#L476">476</a><a id="L477" href="#L477">477</a><a id="L478" href="#L478">478</a><a id="L479" href="#L479">479</a><a id="L480" href="#L480">480</a><a id="L481" href="#L481">481</a><a id="L482" href="#L482">482</a><a id="L483" href="#L483">483</a><a id="L484" href="#L484">484</a><a id="L485" href="#L485">485</a><a id="L486" href="#L486">486</a><a id="L487" href="#L487">487</a><a id="L488" href="#L488">488</a><a id="L489" href="#L489">489</a><a id="L490" href="#L490">490</a><a id="L491" href="#L491">491</a><a id="L492" href="#L492">492</a><a id="L493" href="#L493">493</a><a id="L494" href="#L494">494</a><a id="L495" href="#L495">495</a><a id="L496" href="#L496">496</a><a id="L497" href="#L497">497</a><a id="L498" href="#L498">498</a><a id="L499" href="#L499">499</a><a id="L500" href="#L500">500</a><a id="L501" href="#L501">501</a><a id="L502" href="#L502">502</a><a id="L503" href="#L503">503</a><a id="L504" href="#L504">504</a><a id="L505" href="#L505">505</a><a id="L506" href="#L506">506</a><a id="L507" href="#L507">507</a><a id="L508" href="#L508">508</a><a id="L509" href="#L509">509</a><a id="L510" href="#L510">510</a><a id="L511" href="#L511">511</a><a id="L512" href="#L512">512</a><a id="L513" href="#L513">513</a><a id="L514" href="#L514">514</a><a id="L515" href="#L515">515</a><a id="L516" href="#L516">516</a><a id="L517" href="#L517">517</a><a id="L518" href="#L518">518</a><a id="L519" href="#L519">519</a><a id="L520" href="#L520">520</a><a id="L521" href="#L521">521</a><a id="L522" href="#L522">522</a><a id="L523" href="#L523">523</a><a id="L524" href="#L524">524</a><a id="L525" href="#L525">525</a><a id="L526" href="#L526">526</a><a id="L527" href="#L527">527</a><a id="L528" href="#L528">528</a><a id="L529" href="#L529">529</a><a id="L530" href="#L530">530</a><a id="L531" href="#L531">531</a><a id="L532" href="#L532">532</a><a id="L533" href="#L533">533</a><a id="L534" href="#L534">534</a><a id="L535" href="#L535">535</a><a id="L536" href="#L536">536</a><a id="L537" href="#L537">537</a><a id="L538" href="#L538">538</a><a id="L539" href="#L539">539</a><a id="L540" href="#L540">540</a><a id="L541" href="#L541">541</a><a id="L542" href="#L542">542</a><a id="L543" href="#L543">543</a><a id="L544" href="#L544">544</a><a id="L545" href="#L545">545</a><a id="L546" href="#L546">546</a><a id="L547" href="#L547">547</a><a id="L548" href="#L548">548</a><a id="L549" href="#L549">549</a><a id="L550" href="#L550">550</a><a id="L551" href="#L551">551</a><a id="L552" href="#L552">552</a><a id="L553" href="#L553">553</a><a id="L554" href="#L554">554</a><a id="L555" href="#L555">555</a><a id="L556" href="#L556">556</a><a id="L557" href="#L557">557</a><a id="L558" href="#L558">558</a><a id="L559" href="#L559">559</a><a id="L560" href="#L560">560</a><a id="L561" href="#L561">561</a><a id="L562" href="#L562">562</a><a id="L563" href="#L563">563</a><a id="L564" href="#L564">564</a><a id="L565" href="#L565">565</a><a id="L566" href="#L566">566</a><a id="L567" href="#L567">567</a><a id="L568" href="#L568">568</a><a id="L569" href="#L569">569</a><a id="L570" href="#L570">570</a><a id="L571" href="#L571">571</a><a id="L572" href="#L572">572</a><a id="L573" href="#L573">573</a><a id="L574" href="#L574">574</a><a id="L575" href="#L575">575</a><a id="L576" href="#L576">576</a><a id="L577" href="#L577">577</a><a id="L578" href="#L578">578</a><a id="L579" href="#L579">579</a><a id="L580" href="#L580">580</a><a id="L581" href="#L581">581</a><a id="L582" href="#L582">582</a><a id="L583" href="#L583">583</a><a id="L584" href="#L584">584</a><a id="L585" href="#L585">585</a><a id="L586" href="#L586">586</a><a id="L587" href="#L587">587</a><a id="L588" href="#L588">588</a><a id="L589" href="#L589">589</a><a id="L590" href="#L590">590</a><a id="L591" href="#L591">591</a><a id="L592" href="#L592">592</a><a id="L593" href="#L593">593</a><a id="L594" href="#L594">594</a><a id="L595" href="#L595">595</a><a id="L596" href="#L596">596</a><a id="L597" href="#L597">597</a><a id="L598" href="#L598">598</a><a id="L599" href="#L599">599</a><a id="L600" href="#L600">600</a><a id="L601" href="#L601">601</a><a id="L602" href="#L602">602</a><a id="L603" href="#L603">603</a><a id="L604" href="#L604">604</a><a id="L605" href="#L605">605</a><a id="L606" href="#L606">606</a><a id="L607" href="#L607">607</a><a id="L608" href="#L608">608</a><a id="L609" href="#L609">609</a><a id="L610" href="#L610">610</a><a id="L611" href="#L611">611</a><a id="L612" href="#L612">612</a><a id="L613" href="#L613">613</a><a id="L614" href="#L614">614</a><a id="L615" href="#L615">615</a><a id="L616" href="#L616">616</a><a id="L617" href="#L617">617</a><a id="L618" href="#L618">618</a><a id="L619" href="#L619">619</a><a id="L620" href="#L620">620</a><a id="L621" href="#L621">621</a><a id="L622" href="#L622">622</a><a id="L623" href="#L623">623</a><a id="L624" href="#L624">624</a><a id="L625" href="#L625">625</a><a id="L626" href="#L626">626</a><a id="L627" href="#L627">627</a><a id="L628" href="#L628">628</a><a id="L629" href="#L629">629</a><a id="L630" href="#L630">630</a><a id="L631" href="#L631">631</a><a id="L632" href="#L632">632</a><a id="L633" href="#L633">633</a><a id="L634" href="#L634">634</a><a id="L635" href="#L635">635</a><a id="L636" href="#L636">636</a><a id="L637" href="#L637">637</a><a id="L638" href="#L638">638</a><a id="L639" href="#L639">639</a><a id="L640" href="#L640">640</a><a id="L641" href="#L641">641</a><a id="L642" href="#L642">642</a><a id="L643" href="#L643">643</a><a id="L644" href="#L644">644</a><a id="L645" href="#L645">645</a><a id="L646" href="#L646">646</a><a id="L647" href="#L647">647</a><a id="L648" href="#L648">648</a><a id="L649" href="#L649">649</a><a id="L650" href="#L650">650</a><a id="L651" href="#L651">651</a><a id="L652" href="#L652">652</a><a id="L653" href="#L653">653</a><a id="L654" href="#L654">654</a><a id="L655" href="#L655">655</a><a id="L656" href="#L656">656</a><a id="L657" href="#L657">657</a><a id="L658" href="#L658">658</a><a id="L659" href="#L659">659</a><a id="L660" href="#L660">660</a><a id="L661" href="#L661">661</a><a id="L662" href="#L662">662</a><a id="L663" href="#L663">663</a><a id="L664" href="#L664">664</a><a id="L665" href="#L665">665</a><a id="L666" href="#L666">666</a><a id="L667" href="#L667">667</a><a id="L668" href="#L668">668</a><a id="L669" href="#L669">669</a><a id="L670" href="#L670">670</a><a id="L671" href="#L671">671</a><a id="L672" href="#L672">672</a><a id="L673" href="#L673">673</a><a id="L674" href="#L674">674</a><a id="L675" href="#L675">675</a><a id="L676" href="#L676">676</a><a id="L677" href="#L677">677</a><a id="L678" href="#L678">678</a><a id="L679" href="#L679">679</a><a id="L680" href="#L680">680</a><a id="L681" href="#L681">681</a><a id="L682" href="#L682">682</a><a id="L683" href="#L683">683</a><a id="L684" href="#L684">684</a><a id="L685" href="#L685">685</a><a id="L686" href="#L686">686</a><a id="L687" href="#L687">687</a><a id="L688" href="#L688">688</a><a id="L689" href="#L689">689</a><a id="L690" href="#L690">690</a><a id="L691" href="#L691">691</a><a id="L692" href="#L692">692</a><a id="L693" href="#L693">693</a><a id="L694" href="#L694">694</a><a id="L695" href="#L695">695</a><a id="L696" href="#L696">696</a><a id="L697" href="#L697">697</a><a id="L698" href="#L698">698</a><a id="L699" href="#L699">699</a><a id="L700" href="#L700">700</a><a id="L701" href="#L701">701</a><a id="L702" href="#L702">702</a><a id="L703" href="#L703">703</a><a id="L704" href="#L704">704</a><a id="L705" href="#L705">705</a><a id="L706" href="#L706">706</a><a id="L707" href="#L707">707</a><a id="L708" href="#L708">708</a><a id="L709" href="#L709">709</a><a id="L710" href="#L710">710</a><a id="L711" href="#L711">711</a><a id="L712" href="#L712">712</a><a id="L713" href="#L713">713</a><a id="L714" href="#L714">714</a><a id="L715" href="#L715">715</a><a id="L716" href="#L716">716</a><a id="L717" href="#L717">717</a><a id="L718" href="#L718">718</a><a id="L719" href="#L719">719</a><a id="L720" href="#L720">720</a><a id="L721" href="#L721">721</a><a id="L722" href="#L722">722</a><a id="L723" href="#L723">723</a><a id="L724" href="#L724">724</a><a id="L725" href="#L725">725</a><a id="L726" href="#L726">726</a><a id="L727" href="#L727">727</a><a id="L728" href="#L728">728</a><a id="L729" href="#L729">729</a><a id="L730" href="#L730">730</a><a id="L731" href="#L731">731</a><a id="L732" href="#L732">732</a><a id="L733" href="#L733">733</a><a id="L734" href="#L734">734</a><a id="L735" href="#L735">735</a><a id="L736" href="#L736">736</a><a id="L737" href="#L737">737</a><a id="L738" href="#L738">738</a><a id="L739" href="#L739">739</a><a id="L740" href="#L740">740</a><a id="L741" href="#L741">741</a><a id="L742" href="#L742">742</a><a id="L743" href="#L743">743</a><a id="L744" href="#L744">744</a><a id="L745" href="#L745">745</a><a id="L746" href="#L746">746</a><a id="L747" href="#L747">747</a><a id="L748" href="#L748">748</a><a id="L749" href="#L749">749</a><a id="L750" href="#L750">750</a><a id="L751" href="#L751">751</a><a id="L752" href="#L752">752</a><a id="L753" href="#L753">753</a><a id="L754" href="#L754">754</a><a id="L755" href="#L755">755</a><a id="L756" href="#L756">756</a><a id="L757" href="#L757">757</a><a id="L758" href="#L758">758</a><a id="L759" href="#L759">759</a><a id="L760" href="#L760">760</a><a id="L761" href="#L761">761</a><a id="L762" href="#L762">762</a><a id="L763" href="#L763">763</a><a id="L764" href="#L764">764</a><a id="L765" href="#L765">765</a><a id="L766" href="#L766">766</a><a id="L767" href="#L767">767</a><a id="L768" href="#L768">768</a><a id="L769" href="#L769">769</a><a id="L770" href="#L770">770</a><a id="L771" href="#L771">771</a><a id="L772" href="#L772">772</a><a id="L773" href="#L773">773</a><a id="L774" href="#L774">774</a><a id="L775" href="#L775">775</a><a id="L776" href="#L776">776</a><a id="L777" href="#L777">777</a><a id="L778" href="#L778">778</a><a id="L779" href="#L779">779</a><a id="L780" href="#L780">780</a><a id="L781" href="#L781">781</a><a id="L782" href="#L782">782</a><a id="L783" href="#L783">783</a><a id="L784" href="#L784">784</a><a id="L785" href="#L785">785</a><a id="L786" href="#L786">786</a><a id="L787" href="#L787">787</a><a id="L788" href="#L788">788</a><a id="L789" href="#L789">789</a><a id="L790" href="#L790">790</a><a id="L791" href="#L791">791</a><a id="L792" href="#L792">792</a><a id="L793" href="#L793">793</a><a id="L794" href="#L794">794</a><a id="L795" href="#L795">795</a><a id="L796" href="#L796">796</a><a id="L797" href="#L797">797</a><a id="L798" href="#L798">798</a><a id="L799" href="#L799">799</a><a id="L800" href="#L800">800</a><a id="L801" href="#L801">801</a><a id="L802" href="#L802">802</a><a id="L803" href="#L803">803</a><a id="L804" href="#L804">804</a><a id="L805" href="#L805">805</a><a id="L806" href="#L806">806</a><a id="L807" href="#L807">807</a><a id="L808" href="#L808">808</a><a id="L809" href="#L809">809</a><a id="L810" href="#L810">810</a><a id="L811" href="#L811">811</a><a id="L812" href="#L812">812</a><a id="L813" href="#L813">813</a><a id="L814" href="#L814">814</a><a id="L815" href="#L815">815</a><a id="L816" href="#L816">816</a><a id="L817" href="#L817">817</a><a id="L818" href="#L818">818</a><a id="L819" href="#L819">819</a><a id="L820" href="#L820">820</a><a id="L821" href="#L821">821</a><a id="L822" href="#L822">822</a><a id="L823" href="#L823">823</a><a id="L824" href="#L824">824</a><a id="L825" href="#L825">825</a><a id="L826" href="#L826">826</a><a id="L827" href="#L827">827</a><a id="L828" href="#L828">828</a><a id="L829" href="#L829">829</a><a id="L830" href="#L830">830</a><a id="L831" href="#L831">831</a><a id="L832" href="#L832">832</a><a id="L833" href="#L833">833</a><a id="L834" href="#L834">834</a><a id="L835" href="#L835">835</a><a id="L836" href="#L836">836</a><a id="L837" href="#L837">837</a><a id="L838" href="#L838">838</a><a id="L839" href="#L839">839</a><a id="L840" href="#L840">840</a><a id="L841" href="#L841">841</a><a id="L842" href="#L842">842</a><a id="L843" href="#L843">843</a><a id="L844" href="#L844">844</a><a id="L845" href="#L845">845</a><a id="L846" href="#L846">846</a><a id="L847" href="#L847">847</a><a id="L848" href="#L848">848</a><a id="L849" href="#L849">849</a><a id="L850" href="#L850">850</a><a id="L851" href="#L851">851</a><a id="L852" href="#L852">852</a><a id="L853" href="#L853">853</a><a id="L854" href="#L854">854</a><a id="L855" href="#L855">855</a><a id="L856" href="#L856">856</a><a id="L857" href="#L857">857</a><a id="L858" href="#L858">858</a><a id="L859" href="#L859">859</a><a id="L860" href="#L860">860</a><a id="L861" href="#L861">861</a><a id="L862" href="#L862">862</a><a id="L863" href="#L863">863</a><a id="L864" href="#L864">864</a><a id="L865" href="#L865">865</a><a id="L866" href="#L866">866</a><a id="L867" href="#L867">867</a><a id="L868" href="#L868">868</a><a id="L869" href="#L869">869</a><a id="L870" href="#L870">870</a><a id="L871" href="#L871">871</a><a id="L872" href="#L872">872</a><a id="L873" href="#L873">873</a><a id="L874" href="#L874">874</a><a id="L875" href="#L875">875</a><a id="L876" href="#L876">876</a><a id="L877" href="#L877">877</a><a id="L878" href="#L878">878</a><a id="L879" href="#L879">879</a><a id="L880" href="#L880">880</a><a id="L881" href="#L881">881</a><a id="L882" href="#L882">882</a><a id="L883" href="#L883">883</a><a id="L884" href="#L884">884</a><a id="L885" href="#L885">885</a><a id="L886" href="#L886">886</a><a id="L887" href="#L887">887</a><a id="L888" href="#L888">888</a><a id="L889" href="#L889">889</a><a id="L890" href="#L890">890</a><a id="L891" href="#L891">891</a><a id="L892" href="#L892">892</a><a id="L893" href="#L893">893</a><a id="L894" href="#L894">894</a><a id="L895" href="#L895">895</a><a id="L896" href="#L896">896</a><a id="L897" href="#L897">897</a><a id="L898" href="#L898">898</a><a id="L899" href="#L899">899</a><a id="L900" href="#L900">900</a><a id="L901" href="#L901">901</a><a id="L902" href="#L902">902</a><a id="L903" href="#L903">903</a><a id="L904" href="#L904">904</a><a id="L905" href="#L905">905</a><a id="L906" href="#L906">906</a><a id="L907" href="#L907">907</a><a id="L908" href="#L908">908</a><a id="L909" href="#L909">909</a><a id="L910" href="#L910">910</a><a id="L911" href="#L911">911</a><a id="L912" href="#L912">912</a><a id="L913" href="#L913">913</a><a id="L914" href="#L914">914</a><a id="L915" href="#L915">915</a><a id="L916" href="#L916">916</a><a id="L917" href="#L917">917</a><a id="L918" href="#L918">918</a><a id="L919" href="#L919">919</a><a id="L920" href="#L920">920</a><a id="L921" href="#L921">921</a><a id="L922" href="#L922">922</a><a id="L923" href="#L923">923</a><a id="L924" href="#L924">924</a><a id="L925" href="#L925">925</a><a id="L926" href="#L926">926</a><a id="L927" href="#L927">927</a><a id="L928" href="#L928">928</a><a id="L929" href="#L929">929</a><a id="L930" href="#L930">930</a><a id="L931" href="#L931">931</a><a id="L932" href="#L932">932</a><a id="L933" href="#L933">933</a><a id="L934" href="#L934">934</a><a id="L935" href="#L935">935</a><a id="L936" href="#L936">936</a><a id="L937" href="#L937">937</a><a id="L938" href="#L938">938</a><a id="L939" href="#L939">939</a><a id="L940" href="#L940">940</a><a id="L941" href="#L941">941</a><a id="L942" href="#L942">942</a><a id="L943" href="#L943">943</a><a id="L944" href="#L944">944</a><a id="L945" href="#L945">945</a><a id="L946" href="#L946">946</a><a id="L947" href="#L947">947</a><a id="L948" href="#L948">948</a><a id="L949" href="#L949">949</a><a id="L950" href="#L950">950</a><a id="L951" href="#L951">951</a><a id="L952" href="#L952">952</a><a id="L953" href="#L953">953</a><a id="L954" href="#L954">954</a><a id="L955" href="#L955">955</a><a id="L956" href="#L956">956</a><a id="L957" href="#L957">957</a><a id="L958" href="#L958">958</a><a id="L959" href="#L959">959</a><a id="L960" href="#L960">960</a><a id="L961" href="#L961">961</a><a id="L962" href="#L962">962</a><a id="L963" href="#L963">963</a><a id="L964" href="#L964">964</a><a id="L965" href="#L965">965</a><a id="L966" href="#L966">966</a><a id="L967" href="#L967">967</a><a id="L968" href="#L968">968</a><a id="L969" href="#L969">969</a><a id="L970" href="#L970">970</a><a id="L971" href="#L971">971</a><a id="L972" href="#L972">972</a><a id="L973" href="#L973">973</a><a id="L974" href="#L974">974</a><a id="L975" href="#L975">975</a><a id="L976" href="#L976">976</a><a id="L977" href="#L977">977</a><a id="L978" href="#L978">978</a><a id="L979" href="#L979">979</a><a id="L980" href="#L980">980</a><a id="L981" href="#L981">981</a><a id="L982" href="#L982">982</a><a id="L983" href="#L983">983</a><a id="L984" href="#L984">984</a><a id="L985" href="#L985">985</a><a id="L986" href="#L986">986</a><a id="L987" href="#L987">987</a><a id="L988" href="#L988">988</a><a id="L989" href="#L989">989</a><a id="L990" href="#L990">990</a><a id="L991" href="#L991">991</a><a id="L992" href="#L992">992</a><a id="L993" href="#L993">993</a><a id="L994" href="#L994">994</a><a id="L995" href="#L995">995</a><a id="L996" href="#L996">996</a><a id="L997" href="#L997">997</a><a id="L998" href="#L998">998</a><a id="L999" href="#L999">999</a><a id="L1000" href="#L1000">1000</a><a id="L1001" href="#L1001">1001</a><a id="L1002" href="#L1002">1002</a><a id="L1003" href="#L1003">1003</a><a id="L1004" href="#L1004">1004</a><a id="L1005" href="#L1005">1005</a><a id="L1006" href="#L1006">1006</a><a id="L1007" href="#L1007">1007</a><a id="L1008" href="#L1008">1008</a><a id="L1009" href="#L1009">1009</a><a id="L1010" href="#L1010">1010</a><a id="L1011" href="#L1011">1011</a><a id="L1012" href="#L1012">1012</a><a id="L1013" href="#L1013">1013</a><a id="L1014" href="#L1014">1014</a><a id="L1015" href="#L1015">1015</a><a id="L1016" href="#L1016">1016</a><a id="L1017" href="#L1017">1017</a><a id="L1018" href="#L1018">1018</a><a id="L1019" href="#L1019">1019</a><a id="L1020" href="#L1020">1020</a><a id="L1021" href="#L1021">1021</a><a id="L1022" href="#L1022">1022</a><a id="L1023" href="#L1023">1023</a><a id="L1024" href="#L1024">1024</a><a id="L1025" href="#L1025">1025</a><a id="L1026" href="#L1026">1026</a><a id="L1027" href="#L1027">1027</a><a id="L1028" href="#L1028">1028</a><a id="L1029" href="#L1029">1029</a><a id="L1030" href="#L1030">1030</a><a id="L1031" href="#L1031">1031</a><a id="L1032" href="#L1032">1032</a><a id="L1033" href="#L1033">1033</a><a id="L1034" href="#L1034">1034</a><a id="L1035" href="#L1035">1035</a><a id="L1036" href="#L1036">1036</a><a id="L1037" href="#L1037">1037</a><a id="L1038" href="#L1038">1038</a><a id="L1039" href="#L1039">1039</a><a id="L1040" href="#L1040">1040</a><a id="L1041" href="#L1041">1041</a><a id="L1042" href="#L1042">1042</a><a id="L1043" href="#L1043">1043</a><a id="L1044" href="#L1044">1044</a><a id="L1045" href="#L1045">1045</a><a id="L1046" href="#L1046">1046</a><a id="L1047" href="#L1047">1047</a><a id="L1048" href="#L1048">1048</a><a id="L1049" href="#L1049">1049</a><a id="L1050" href="#L1050">1050</a><a id="L1051" href="#L1051">1051</a><a id="L1052" href="#L1052">1052</a><a id="L1053" href="#L1053">1053</a><a id="L1054" href="#L1054">1054</a><a id="L1055" href="#L1055">1055</a><a id="L1056" href="#L1056">1056</a><a id="L1057" href="#L1057">1057</a><a id="L1058" href="#L1058">1058</a><a id="L1059" href="#L1059">1059</a><a id="L1060" href="#L1060">1060</a><a id="L1061" href="#L1061">1061</a><a id="L1062" href="#L1062">1062</a><a id="L1063" href="#L1063">1063</a><a id="L1064" href="#L1064">1064</a><a id="L1065" href="#L1065">1065</a><a id="L1066" href="#L1066">1066</a><a id="L1067" href="#L1067">1067</a><a id="L1068" href="#L1068">1068</a><a id="L1069" href="#L1069">1069</a><a id="L1070" href="#L1070">1070</a><a id="L1071" href="#L1071">1071</a><a id="L1072" href="#L1072">1072</a><a id="L1073" href="#L1073">1073</a><a id="L1074" href="#L1074">1074</a><a id="L1075" href="#L1075">1075</a><a id="L1076" href="#L1076">1076</a><a id="L1077" href="#L1077">1077</a><a id="L1078" href="#L1078">1078</a><a id="L1079" href="#L1079">1079</a><a id="L1080" href="#L1080">1080</a><a id="L1081" href="#L1081">1081</a><a id="L1082" href="#L1082">1082</a><a id="L1083" href="#L1083">1083</a><a id="L1084" href="#L1084">1084</a><a id="L1085" href="#L1085">1085</a><a id="L1086" href="#L1086">1086</a><a id="L1087" href="#L1087">1087</a><a id="L1088" href="#L1088">1088</a><a id="L1089" href="#L1089">1089</a><a id="L1090" href="#L1090">1090</a><a id="L1091" href="#L1091">1091</a><a id="L1092" href="#L1092">1092</a><a id="L1093" href="#L1093">1093</a><a id="L1094" href="#L1094">1094</a><a id="L1095" href="#L1095">1095</a><a id="L1096" href="#L1096">1096</a><a id="L1097" href="#L1097">1097</a><a id="L1098" href="#L1098">1098</a><a id="L1099" href="#L1099">1099</a><a id="L1100" href="#L1100">1100</a><a id="L1101" href="#L1101">1101</a><a id="L1102" href="#L1102">1102</a><a id="L1103" href="#L1103">1103</a><a id="L1104" href="#L1104">1104</a><a id="L1105" href="#L1105">1105</a><a id="L1106" href="#L1106">1106</a><a id="L1107" href="#L1107">1107</a><a id="L1108" href="#L1108">1108</a><a id="L1109" href="#L1109">1109</a><a id="L1110" href="#L1110">1110</a><a id="L1111" href="#L1111">1111</a><a id="L1112" href="#L1112">1112</a><a id="L1113" href="#L1113">1113</a><a id="L1114" href="#L1114">1114</a><a id="L1115" href="#L1115">1115</a><a id="L1116" href="#L1116">1116</a><a id="L1117" href="#L1117">1117</a><a id="L1118" href="#L1118">1118</a><a id="L1119" href="#L1119">1119</a><a id="L1120" href="#L1120">1120</a><a id="L1121" href="#L1121">1121</a><a id="L1122" href="#L1122">1122</a><a id="L1123" href="#L1123">1123</a><a id="L1124" href="#L1124">1124</a><a id="L1125" href="#L1125">1125</a><a id="L1126" href="#L1126">1126</a><a id="L1127" href="#L1127">1127</a><a id="L1128" href="#L1128">1128</a><a id="L1129" href="#L1129">1129</a><a id="L1130" href="#L1130">1130</a><a id="L1131" href="#L1131">1131</a><a id="L1132" href="#L1132">1132</a><a id="L1133" href="#L1133">1133</a><a id="L1134" href="#L1134">1134</a><a id="L1135" href="#L1135">1135</a><a id="L1136" href="#L1136">1136</a><a id="L1137" href="#L1137">1137</a><a id="L1138" href="#L1138">1138</a><a id="L1139" href="#L1139">1139</a><a id="L1140" href="#L1140">1140</a><a id="L1141" href="#L1141">1141</a><a id="L1142" href="#L1142">1142</a><a id="L1143" href="#L1143">1143</a><a id="L1144" href="#L1144">1144</a><a id="L1145" href="#L1145">1145</a><a id="L1146" href="#L1146">1146</a><a id="L1147" href="#L1147">1147</a><a id="L1148" href="#L1148">1148</a><a id="L1149" href="#L1149">1149</a><a id="L1150" href="#L1150">1150</a><a id="L1151" href="#L1151">1151</a><a id="L1152" href="#L1152">1152</a><a id="L1153" href="#L1153">1153</a><a id="L1154" href="#L1154">1154</a><a id="L1155" href="#L1155">1155</a><a id="L1156" href="#L1156">1156</a><a id="L1157" href="#L1157">1157</a><a id="L1158" href="#L1158">1158</a><a id="L1159" href="#L1159">1159</a><a id="L1160" href="#L1160">1160</a><a id="L1161" href="#L1161">1161</a><a id="L1162" href="#L1162">1162</a><a id="L1163" href="#L1163">1163</a><a id="L1164" href="#L1164">1164</a><a id="L1165" href="#L1165">1165</a><a id="L1166" href="#L1166">1166</a><a id="L1167" href="#L1167">1167</a><a id="L1168" href="#L1168">1168</a><a id="L1169" href="#L1169">1169</a><a id="L1170" href="#L1170">1170</a><a id="L1171" href="#L1171">1171</a><a id="L1172" href="#L1172">1172</a><a id="L1173" href="#L1173">1173</a><a id="L1174" href="#L1174">1174</a><a id="L1175" href="#L1175">1175</a><a id="L1176" href="#L1176">1176</a><a id="L1177" href="#L1177">1177</a><a id="L1178" href="#L1178">1178</a><a id="L1179" href="#L1179">1179</a><a id="L1180" href="#L1180">1180</a><a id="L1181" href="#L1181">1181</a><a id="L1182" href="#L1182">1182</a><a id="L1183" href="#L1183">1183</a><a id="L1184" href="#L1184">1184</a><a id="L1185" href="#L1185">1185</a><a id="L1186" href="#L1186">1186</a><a id="L1187" href="#L1187">1187</a><a id="L1188" href="#L1188">1188</a><a id="L1189" href="#L1189">1189</a><a id="L1190" href="#L1190">1190</a><a id="L1191" href="#L1191">1191</a><a id="L1192" href="#L1192">1192</a><a id="L1193" href="#L1193">1193</a><a id="L1194" href="#L1194">1194</a><a id="L1195" href="#L1195">1195</a><a id="L1196" href="#L1196">1196</a><a id="L1197" href="#L1197">1197</a><a id="L1198" href="#L1198">1198</a><a id="L1199" href="#L1199">1199</a><a id="L1200" href="#L1200">1200</a><a id="L1201" href="#L1201">1201</a><a id="L1202" href="#L1202">1202</a><a id="L1203" href="#L1203">1203</a><a id="L1204" href="#L1204">1204</a><a id="L1205" href="#L1205">1205</a><a id="L1206" href="#L1206">1206</a><a id="L1207" href="#L1207">1207</a><a id="L1208" href="#L1208">1208</a><a id="L1209" href="#L1209">1209</a><a id="L1210" href="#L1210">1210</a><a id="L1211" href="#L1211">1211</a><a id="L1212" href="#L1212">1212</a><a id="L1213" href="#L1213">1213</a><a id="L1214" href="#L1214">1214</a><a id="L1215" href="#L1215">1215</a><a id="L1216" href="#L1216">1216</a><a id="L1217" href="#L1217">1217</a><a id="L1218" href="#L1218">1218</a><a id="L1219" href="#L1219">1219</a><a id="L1220" href="#L1220">1220</a><a id="L1221" href="#L1221">1221</a><a id="L1222" href="#L1222">1222</a><a id="L1223" href="#L1223">1223</a><a id="L1224" href="#L1224">1224</a><a id="L1225" href="#L1225">1225</a><a id="L1226" href="#L1226">1226</a><a id="L1227" href="#L1227">1227</a><a id="L1228" href="#L1228">1228</a><a id="L1229" href="#L1229">1229</a><a id="L1230" href="#L1230">1230</a><a id="L1231" href="#L1231">1231</a><a id="L1232" href="#L1232">1232</a><a id="L1233" href="#L1233">1233</a><a id="L1234" href="#L1234">1234</a><a id="L1235" href="#L1235">1235</a><a id="L1236" href="#L1236">1236</a><a id="L1237" href="#L1237">1237</a><a id="L1238" href="#L1238">1238</a><a id="L1239" href="#L1239">1239</a><a id="L1240" href="#L1240">1240</a><a id="L1241" href="#L1241">1241</a><a id="L1242" href="#L1242">1242</a><a id="L1243" href="#L1243">1243</a><a id="L1244" href="#L1244">1244</a><a id="L1245" href="#L1245">1245</a><a id="L1246" href="#L1246">1246</a><a id="L1247" href="#L1247">1247</a><a id="L1248" href="#L1248">1248</a><a id="L1249" href="#L1249">1249</a><a id="L1250" href="#L1250">1250</a><a id="L1251" href="#L1251">1251</a><a id="L1252" href="#L1252">1252</a><a id="L1253" href="#L1253">1253</a><a id="L1254" href="#L1254">1254</a><a id="L1255" href="#L1255">1255</a><a id="L1256" href="#L1256">1256</a><a id="L1257" href="#L1257">1257</a><a id="L1258" href="#L1258">1258</a><a id="L1259" href="#L1259">1259</a><a id="L1260" href="#L1260">1260</a><a id="L1261" href="#L1261">1261</a><a id="L1262" href="#L1262">1262</a><a id="L1263" href="#L1263">1263</a><a id="L1264" href="#L1264">1264</a><a id="L1265" href="#L1265">1265</a><a id="L1266" href="#L1266">1266</a><a id="L1267" href="#L1267">1267</a><a id="L1268" href="#L1268">1268</a><a id="L1269" href="#L1269">1269</a><a id="L1270" href="#L1270">1270</a><a id="L1271" href="#L1271">1271</a><a id="L1272" href="#L1272">1272</a><a id="L1273" href="#L1273">1273</a><a id="L1274" href="#L1274">1274</a><a id="L1275" href="#L1275">1275</a><a id="L1276" href="#L1276">1276</a><a id="L1277" href="#L1277">1277</a><a id="L1278" href="#L1278">1278</a><a id="L1279" href="#L1279">1279</a><a id="L1280" href="#L1280">1280</a><a id="L1281" href="#L1281">1281</a><a id="L1282" href="#L1282">1282</a><a id="L1283" href="#L1283">1283</a><a id="L1284" href="#L1284">1284</a><a id="L1285" href="#L1285">1285</a><a id="L1286" href="#L1286">1286</a><a id="L1287" href="#L1287">1287</a><a id="L1288" href="#L1288">1288</a><a id="L1289" href="#L1289">1289</a><a id="L1290" href="#L1290">1290</a><a id="L1291" href="#L1291">1291</a><a id="L1292" href="#L1292">1292</a><a id="L1293" href="#L1293">1293</a><a id="L1294" href="#L1294">1294</a><a id="L1295" href="#L1295">1295</a><a id="L1296" href="#L1296">1296</a><a id="L1297" href="#L1297">1297</a><a id="L1298" href="#L1298">1298</a><a id="L1299" href="#L1299">1299</a><a id="L1300" href="#L1300">1300</a><a id="L1301" href="#L1301">1301</a><a id="L1302" href="#L1302">1302</a><a id="L1303" href="#L1303">1303</a><a id="L1304" href="#L1304">1304</a><a id="L1305" href="#L1305">1305</a><a id="L1306" href="#L1306">1306</a><a id="L1307" href="#L1307">1307</a><a id="L1308" href="#L1308">1308</a><a id="L1309" href="#L1309">1309</a><a id="L1310" href="#L1310">1310</a><a id="L1311" href="#L1311">1311</a><a id="L1312" href="#L1312">1312</a><a id="L1313" href="#L1313">1313</a><a id="L1314" href="#L1314">1314</a><a id="L1315" href="#L1315">1315</a><a id="L1316" href="#L1316">1316</a><a id="L1317" href="#L1317">1317</a><a id="L1318" href="#L1318">1318</a><a id="L1319" href="#L1319">1319</a><a id="L1320" href="#L1320">1320</a><a id="L1321" href="#L1321">1321</a><a id="L1322" href="#L1322">1322</a><a id="L1323" href="#L1323">1323</a><a id="L1324" href="#L1324">1324</a><a id="L1325" href="#L1325">1325</a><a id="L1326" href="#L1326">1326</a><a id="L1327" href="#L1327">1327</a><a id="L1328" href="#L1328">1328</a><a id="L1329" href="#L1329">1329</a><a id="L1330" href="#L1330">1330</a><a id="L1331" href="#L1331">1331</a><a id="L1332" href="#L1332">1332</a><a id="L1333" href="#L1333">1333</a><a id="L1334" href="#L1334">1334</a><a id="L1335" href="#L1335">1335</a><a id="L1336" href="#L1336">1336</a><a id="L1337" href="#L1337">1337</a><a id="L1338" href="#L1338">1338</a><a id="L1339" href="#L1339">1339</a><a id="L1340" href="#L1340">1340</a><a id="L1341" href="#L1341">1341</a><a id="L1342" href="#L1342">1342</a><a id="L1343" href="#L1343">1343</a><a id="L1344" href="#L1344">1344</a><a id="L1345" href="#L1345">1345</a><a id="L1346" href="#L1346">1346</a><a id="L1347" href="#L1347">1347</a><a id="L1348" href="#L1348">1348</a><a id="L1349" href="#L1349">1349</a><a id="L1350" href="#L1350">1350</a><a id="L1351" href="#L1351">1351</a><a id="L1352" href="#L1352">1352</a><a id="L1353" href="#L1353">1353</a><a id="L1354" href="#L1354">1354</a><a id="L1355" href="#L1355">1355</a><a id="L1356" href="#L1356">1356</a><a id="L1357" href="#L1357">1357</a><a id="L1358" href="#L1358">1358</a><a id="L1359" href="#L1359">1359</a><a id="L1360" href="#L1360">1360</a><a id="L1361" href="#L1361">1361</a><a id="L1362" href="#L1362">1362</a><a id="L1363" href="#L1363">1363</a><a id="L1364" href="#L1364">1364</a><a id="L1365" href="#L1365">1365</a><a id="L1366" href="#L1366">1366</a><a id="L1367" href="#L1367">1367</a><a id="L1368" href="#L1368">1368</a><a id="L1369" href="#L1369">1369</a><a id="L1370" href="#L1370">1370</a><a id="L1371" href="#L1371">1371</a><a id="L1372" href="#L1372">1372</a><a id="L1373" href="#L1373">1373</a><a id="L1374" href="#L1374">1374</a><a id="L1375" href="#L1375">1375</a><a id="L1376" href="#L1376">1376</a><a id="L1377" href="#L1377">1377</a><a id="L1378" href="#L1378">1378</a><a id="L1379" href="#L1379">1379</a><a id="L1380" href="#L1380">1380</a><a id="L1381" href="#L1381">1381</a><a id="L1382" href="#L1382">1382</a><a id="L1383" href="#L1383">1383</a><a id="L1384" href="#L1384">1384</a><a id="L1385" href="#L1385">1385</a><a id="L1386" href="#L1386">1386</a><a id="L1387" href="#L1387">1387</a><a id="L1388" href="#L1388">1388</a><a id="L1389" href="#L1389">1389</a><a id="L1390" href="#L1390">1390</a><a id="L1391" href="#L1391">1391</a><a id="L1392" href="#L1392">1392</a><a id="L1393" href="#L1393">1393</a><a id="L1394" href="#L1394">1394</a><a id="L1395" href="#L1395">1395</a><a id="L1396" href="#L1396">1396</a><a id="L1397" href="#L1397">1397</a><a id="L1398" href="#L1398">1398</a><a id="L1399" href="#L1399">1399</a><a id="L1400" href="#L1400">1400</a><a id="L1401" href="#L1401">1401</a><a id="L1402" href="#L1402">1402</a><a id="L1403" href="#L1403">1403</a><a id="L1404" href="#L1404">1404</a><a id="L1405" href="#L1405">1405</a><a id="L1406" href="#L1406">1406</a><a id="L1407" href="#L1407">1407</a><a id="L1408" href="#L1408">1408</a><a id="L1409" href="#L1409">1409</a><a id="L1410" href="#L1410">1410</a><a id="L1411" href="#L1411">1411</a><a id="L1412" href="#L1412">1412</a><a id="L1413" href="#L1413">1413</a><a id="L1414" href="#L1414">1414</a><a id="L1415" href="#L1415">1415</a><a id="L1416" href="#L1416">1416</a><a id="L1417" href="#L1417">1417</a><a id="L1418" href="#L1418">1418</a><a id="L1419" href="#L1419">1419</a><a id="L1420" href="#L1420">1420</a><a id="L1421" href="#L1421">1421</a><a id="L1422" href="#L1422">1422</a><a id="L1423" href="#L1423">1423</a><a id="L1424" href="#L1424">1424</a><a id="L1425" href="#L1425">1425</a><a id="L1426" href="#L1426">1426</a><a id="L1427" href="#L1427">1427</a><a id="L1428" href="#L1428">1428</a><a id="L1429" href="#L1429">1429</a><a id="L1430" href="#L1430">1430</a><a id="L1431" href="#L1431">1431</a><a id="L1432" href="#L1432">1432</a><a id="L1433" href="#L1433">1433</a><a id="L1434" href="#L1434">1434</a><a id="L1435" href="#L1435">1435</a><a id="L1436" href="#L1436">1436</a><a id="L1437" href="#L1437">1437</a><a id="L1438" href="#L1438">1438</a><a id="L1439" href="#L1439">1439</a><a id="L1440" href="#L1440">1440</a><a id="L1441" href="#L1441">1441</a><a id="L1442" href="#L1442">1442</a><a id="L1443" href="#L1443">1443</a><a id="L1444" href="#L1444">1444</a><a id="L1445" href="#L1445">1445</a><a id="L1446" href="#L1446">1446</a><a id="L1447" href="#L1447">1447</a><a id="L1448" href="#L1448">1448</a><a id="L1449" href="#L1449">1449</a><a id="L1450" href="#L1450">1450</a><a id="L1451" href="#L1451">1451</a><a id="L1452" href="#L1452">1452</a><a id="L1453" href="#L1453">1453</a><a id="L1454" href="#L1454">1454</a><a id="L1455" href="#L1455">1455</a><a id="L1456" href="#L1456">1456</a><a id="L1457" href="#L1457">1457</a><a id="L1458" href="#L1458">1458</a><a id="L1459" href="#L1459">1459</a><a id="L1460" href="#L1460">1460</a><a id="L1461" href="#L1461">1461</a><a id="L1462" href="#L1462">1462</a><a id="L1463" href="#L1463">1463</a><a id="L1464" href="#L1464">1464</a><a id="L1465" href="#L1465">1465</a><a id="L1466" href="#L1466">1466</a><a id="L1467" href="#L1467">1467</a><a id="L1468" href="#L1468">1468</a><a id="L1469" href="#L1469">1469</a><a id="L1470" href="#L1470">1470</a><a id="L1471" href="#L1471">1471</a><a id="L1472" href="#L1472">1472</a><a id="L1473" href="#L1473">1473</a><a id="L1474" href="#L1474">1474</a><a id="L1475" href="#L1475">1475</a><a id="L1476" href="#L1476">1476</a><a id="L1477" href="#L1477">1477</a><a id="L1478" href="#L1478">1478</a><a id="L1479" href="#L1479">1479</a><a id="L1480" href="#L1480">1480</a><a id="L1481" href="#L1481">1481</a><a id="L1482" href="#L1482">1482</a><a id="L1483" href="#L1483">1483</a><a id="L1484" href="#L1484">1484</a><a id="L1485" href="#L1485">1485</a><a id="L1486" href="#L1486">1486</a><a id="L1487" href="#L1487">1487</a><a id="L1488" href="#L1488">1488</a><a id="L1489" href="#L1489">1489</a><a id="L1490" href="#L1490">1490</a><a id="L1491" href="#L1491">1491</a><a id="L1492" href="#L1492">1492</a><a id="L1493" href="#L1493">1493</a><a id="L1494" href="#L1494">1494</a><a id="L1495" href="#L1495">1495</a><a id="L1496" href="#L1496">1496</a><a id="L1497" href="#L1497">1497</a><a id="L1498" href="#L1498">1498</a><a id="L1499" href="#L1499">1499</a><a id="L1500" href="#L1500">1500</a><a id="L1501" href="#L1501">1501</a><a id="L1502" href="#L1502">1502</a><a id="L1503" href="#L1503">1503</a><a id="L1504" href="#L1504">1504</a><a id="L1505" href="#L1505">1505</a><a id="L1506" href="#L1506">1506</a><a id="L1507" href="#L1507">1507</a><a id="L1508" href="#L1508">1508</a><a id="L1509" href="#L1509">1509</a><a id="L1510" href="#L1510">1510</a><a id="L1511" href="#L1511">1511</a><a id="L1512" href="#L1512">1512</a><a id="L1513" href="#L1513">1513</a><a id="L1514" href="#L1514">1514</a><a id="L1515" href="#L1515">1515</a><a id="L1516" href="#L1516">1516</a><a id="L1517" href="#L1517">1517</a><a id="L1518" href="#L1518">1518</a><a id="L1519" href="#L1519">1519</a><a id="L1520" href="#L1520">1520</a><a id="L1521" href="#L1521">1521</a><a id="L1522" href="#L1522">1522</a><a id="L1523" href="#L1523">1523</a><a id="L1524" href="#L1524">1524</a><a id="L1525" href="#L1525">1525</a><a id="L1526" href="#L1526">1526</a><a id="L1527" href="#L1527">1527</a><a id="L1528" href="#L1528">1528</a><a id="L1529" href="#L1529">1529</a><a id="L1530" href="#L1530">1530</a><a id="L1531" href="#L1531">1531</a><a id="L1532" href="#L1532">1532</a><a id="L1533" href="#L1533">1533</a><a id="L1534" href="#L1534">1534</a><a id="L1535" href="#L1535">1535</a><a id="L1536" href="#L1536">1536</a><a id="L1537" href="#L1537">1537</a><a id="L1538" href="#L1538">1538</a><a id="L1539" href="#L1539">1539</a><a id="L1540" href="#L1540">1540</a><a id="L1541" href="#L1541">1541</a><a id="L1542" href="#L1542">1542</a><a id="L1543" href="#L1543">1543</a><a id="L1544" href="#L1544">1544</a><a id="L1545" href="#L1545">1545</a><a id="L1546" href="#L1546">1546</a><a id="L1547" href="#L1547">1547</a><a id="L1548" href="#L1548">1548</a><a id="L1549" href="#L1549">1549</a><a id="L1550" href="#L1550">1550</a><a id="L1551" href="#L1551">1551</a><a id="L1552" href="#L1552">1552</a><a id="L1553" href="#L1553">1553</a><a id="L1554" href="#L1554">1554</a><a id="L1555" href="#L1555">1555</a><a id="L1556" href="#L1556">1556</a><a id="L1557" href="#L1557">1557</a><a id="L1558" href="#L1558">1558</a><a id="L1559" href="#L1559">1559</a><a id="L1560" href="#L1560">1560</a><a id="L1561" href="#L1561">1561</a><a id="L1562" href="#L1562">1562</a><a id="L1563" href="#L1563">1563</a><a id="L1564" href="#L1564">1564</a><a id="L1565" href="#L1565">1565</a><a id="L1566" href="#L1566">1566</a><a id="L1567" href="#L1567">1567</a><a id="L1568" href="#L1568">1568</a><a id="L1569" href="#L1569">1569</a><a id="L1570" href="#L1570">1570</a><a id="L1571" href="#L1571">1571</a><a id="L1572" href="#L1572">1572</a><a id="L1573" href="#L1573">1573</a><a id="L1574" href="#L1574">1574</a><a id="L1575" href="#L1575">1575</a><a id="L1576" href="#L1576">1576</a><a id="L1577" href="#L1577">1577</a><a id="L1578" href="#L1578">1578</a><a id="L1579" href="#L1579">1579</a><a id="L1580" href="#L1580">1580</a><a id="L1581" href="#L1581">1581</a><a id="L1582" href="#L1582">1582</a><a id="L1583" href="#L1583">1583</a><a id="L1584" href="#L1584">1584</a><a id="L1585" href="#L1585">1585</a><a id="L1586" href="#L1586">1586</a><a id="L1587" href="#L1587">1587</a><a id="L1588" href="#L1588">1588</a><a id="L1589" href="#L1589">1589</a><a id="L1590" href="#L1590">1590</a><a id="L1591" href="#L1591">1591</a><a id="L1592" href="#L1592">1592</a><a id="L1593" href="#L1593">1593</a><a id="L1594" href="#L1594">1594</a><a id="L1595" href="#L1595">1595</a><a id="L1596" href="#L1596">1596</a><a id="L1597" href="#L1597">1597</a><a id="L1598" href="#L1598">1598</a><a id="L1599" href="#L1599">1599</a><a id="L1600" href="#L1600">1600</a><a id="L1601" href="#L1601">1601</a><a id="L1602" href="#L1602">1602</a><a id="L1603" href="#L1603">1603</a><a id="L1604" href="#L1604">1604</a><a id="L1605" href="#L1605">1605</a><a id="L1606" href="#L1606">1606</a><a id="L1607" href="#L1607">1607</a><a id="L1608" href="#L1608">1608</a><a id="L1609" href="#L1609">1609</a><a id="L1610" href="#L1610">1610</a><a id="L1611" href="#L1611">1611</a><a id="L1612" href="#L1612">1612</a><a id="L1613" href="#L1613">1613</a><a id="L1614" href="#L1614">1614</a><a id="L1615" href="#L1615">1615</a><a id="L1616" href="#L1616">1616</a><a id="L1617" href="#L1617">1617</a><a id="L1618" href="#L1618">1618</a><a id="L1619" href="#L1619">1619</a><a id="L1620" href="#L1620">1620</a><a id="L1621" href="#L1621">1621</a><a id="L1622" href="#L1622">1622</a><a id="L1623" href="#L1623">1623</a><a id="L1624" href="#L1624">1624</a><a id="L1625" href="#L1625">1625</a><a id="L1626" href="#L1626">1626</a><a id="L1627" href="#L1627">1627</a><a id="L1628" href="#L1628">1628</a><a id="L1629" href="#L1629">1629</a><a id="L1630" href="#L1630">1630</a><a id="L1631" href="#L1631">1631</a><a id="L1632" href="#L1632">1632</a><a id="L1633" href="#L1633">1633</a><a id="L1634" href="#L1634">1634</a><a id="L1635" href="#L1635">1635</a><a id="L1636" href="#L1636">1636</a><a id="L1637" href="#L1637">1637</a><a id="L1638" href="#L1638">1638</a><a id="L1639" href="#L1639">1639</a><a id="L1640" href="#L1640">1640</a><a id="L1641" href="#L1641">1641</a><a id="L1642" href="#L1642">1642</a><a id="L1643" href="#L1643">1643</a><a id="L1644" href="#L1644">1644</a><a id="L1645" href="#L1645">1645</a><a id="L1646" href="#L1646">1646</a><a id="L1647" href="#L1647">1647</a><a id="L1648" href="#L1648">1648</a><a id="L1649" href="#L1649">1649</a><a id="L1650" href="#L1650">1650</a><a id="L1651" href="#L1651">1651</a><a id="L1652" href="#L1652">1652</a><a id="L1653" href="#L1653">1653</a><a id="L1654" href="#L1654">1654</a><a id="L1655" href="#L1655">1655</a><a id="L1656" href="#L1656">1656</a><a id="L1657" href="#L1657">1657</a><a id="L1658" href="#L1658">1658</a><a id="L1659" href="#L1659">1659</a><a id="L1660" href="#L1660">1660</a><a id="L1661" href="#L1661">1661</a><a id="L1662" href="#L1662">1662</a><a id="L1663" href="#L1663">1663</a><a id="L1664" href="#L1664">1664</a><a id="L1665" href="#L1665">1665</a><a id="L1666" href="#L1666">1666</a><a id="L1667" href="#L1667">1667</a><a id="L1668" href="#L1668">1668</a><a id="L1669" href="#L1669">1669</a><a id="L1670" href="#L1670">1670</a><a id="L1671" href="#L1671">1671</a><a id="L1672" href="#L1672">1672</a><a id="L1673" href="#L1673">1673</a><a id="L1674" href="#L1674">1674</a><a id="L1675" href="#L1675">1675</a><a id="L1676" href="#L1676">1676</a><a id="L1677" href="#L1677">1677</a><a id="L1678" href="#L1678">1678</a><a id="L1679" href="#L1679">1679</a><a id="L1680" href="#L1680">1680</a><a id="L1681" href="#L1681">1681</a><a id="L1682" href="#L1682">1682</a><a id="L1683" href="#L1683">1683</a><a id="L1684" href="#L1684">1684</a><a id="L1685" href="#L1685">1685</a><a id="L1686" href="#L1686">1686</a><a id="L1687" href="#L1687">1687</a><a id="L1688" href="#L1688">1688</a><a id="L1689" href="#L1689">1689</a><a id="L1690" href="#L1690">1690</a><a id="L1691" href="#L1691">1691</a><a id="L1692" href="#L1692">1692</a><a id="L1693" href="#L1693">1693</a><a id="L1694" href="#L1694">1694</a><a id="L1695" href="#L1695">1695</a><a id="L1696" href="#L1696">1696</a><a id="L1697" href="#L1697">1697</a><a id="L1698" href="#L1698">1698</a><a id="L1699" href="#L1699">1699</a><a id="L1700" href="#L1700">1700</a><a id="L1701" href="#L1701">1701</a><a id="L1702" href="#L1702">1702</a><a id="L1703" href="#L1703">1703</a><a id="L1704" href="#L1704">1704</a><a id="L1705" href="#L1705">1705</a><a id="L1706" href="#L1706">1706</a><a id="L1707" href="#L1707">1707</a><a id="L1708" href="#L1708">1708</a><a id="L1709" href="#L1709">1709</a><a id="L1710" href="#L1710">1710</a><a id="L1711" href="#L1711">1711</a><a id="L1712" href="#L1712">1712</a><a id="L1713" href="#L1713">1713</a><a id="L1714" href="#L1714">1714</a><a id="L1715" href="#L1715">1715</a><a id="L1716" href="#L1716">1716</a><a id="L1717" href="#L1717">1717</a><a id="L1718" href="#L1718">1718</a><a id="L1719" href="#L1719">1719</a><a id="L1720" href="#L1720">1720</a><a id="L1721" href="#L1721">1721</a><a id="L1722" href="#L1722">1722</a><a id="L1723" href="#L1723">1723</a><a id="L1724" href="#L1724">1724</a><a id="L1725" href="#L1725">1725</a><a id="L1726" href="#L1726">1726</a><a id="L1727" href="#L1727">1727</a><a id="L1728" href="#L1728">1728</a><a id="L1729" href="#L1729">1729</a><a id="L1730" href="#L1730">1730</a><a id="L1731" href="#L1731">1731</a><a id="L1732" href="#L1732">1732</a><a id="L1733" href="#L1733">1733</a><a id="L1734" href="#L1734">1734</a><a id="L1735" href="#L1735">1735</a><a id="L1736" href="#L1736">1736</a><a id="L1737" href="#L1737">1737</a><a id="L1738" href="#L1738">1738</a><a id="L1739" href="#L1739">1739</a><a id="L1740" href="#L1740">1740</a><a id="L1741" href="#L1741">1741</a><a id="L1742" href="#L1742">1742</a><a id="L1743" href="#L1743">1743</a><a id="L1744" href="#L1744">1744</a><a id="L1745" href="#L1745">1745</a><a id="L1746" href="#L1746">1746</a><a id="L1747" href="#L1747">1747</a><a id="L1748" href="#L1748">1748</a><a id="L1749" href="#L1749">1749</a><a id="L1750" href="#L1750">1750</a><a id="L1751" href="#L1751">1751</a><a id="L1752" href="#L1752">1752</a><a id="L1753" href="#L1753">1753</a><a id="L1754" href="#L1754">1754</a><a id="L1755" href="#L1755">1755</a><a id="L1756" href="#L1756">1756</a><a id="L1757" href="#L1757">1757</a><a id="L1758" href="#L1758">1758</a><a id="L1759" href="#L1759">1759</a><a id="L1760" href="#L1760">1760</a><a id="L1761" href="#L1761">1761</a><a id="L1762" href="#L1762">1762</a><a id="L1763" href="#L1763">1763</a><a id="L1764" href="#L1764">1764</a><a id="L1765" href="#L1765">1765</a><a id="L1766" href="#L1766">1766</a><a id="L1767" href="#L1767">1767</a><a id="L1768" href="#L1768">1768</a><a id="L1769" href="#L1769">1769</a><a id="L1770" href="#L1770">1770</a><a id="L1771" href="#L1771">1771</a><a id="L1772" href="#L1772">1772</a><a id="L1773" href="#L1773">1773</a><a id="L1774" href="#L1774">1774</a><a id="L1775" href="#L1775">1775</a><a id="L1776" href="#L1776">1776</a><a id="L1777" href="#L1777">1777</a><a id="L1778" href="#L1778">1778</a><a id="L1779" href="#L1779">1779</a><a id="L1780" href="#L1780">1780</a><a id="L1781" href="#L1781">1781</a><a id="L1782" href="#L1782">1782</a><a id="L1783" href="#L1783">1783</a><a id="L1784" href="#L1784">1784</a><a id="L1785" href="#L1785">1785</a><a id="L1786" href="#L1786">1786</a><a id="L1787" href="#L1787">1787</a><a id="L1788" href="#L1788">1788</a><a id="L1789" href="#L1789">1789</a><a id="L1790" href="#L1790">1790</a><a id="L1791" href="#L1791">1791</a><a id="L1792" href="#L1792">1792</a><a id="L1793" href="#L1793">1793</a><a id="L1794" href="#L1794">1794</a><a id="L1795" href="#L1795">1795</a><a id="L1796" href="#L1796">1796</a><a id="L1797" href="#L1797">1797</a><a id="L1798" href="#L1798">1798</a><a id="L1799" href="#L1799">1799</a><a id="L1800" href="#L1800">1800</a><a id="L1801" href="#L1801">1801</a><a id="L1802" href="#L1802">1802</a><a id="L1803" href="#L1803">1803</a><a id="L1804" href="#L1804">1804</a><a id="L1805" href="#L1805">1805</a><a id="L1806" href="#L1806">1806</a><a id="L1807" href="#L1807">1807</a><a id="L1808" href="#L1808">1808</a><a id="L1809" href="#L1809">1809</a><a id="L1810" href="#L1810">1810</a><a id="L1811" href="#L1811">1811</a><a id="L1812" href="#L1812">1812</a><a id="L1813" href="#L1813">1813</a><a id="L1814" href="#L1814">1814</a><a id="L1815" href="#L1815">1815</a><a id="L1816" href="#L1816">1816</a><a id="L1817" href="#L1817">1817</a><a id="L1818" href="#L1818">1818</a><a id="L1819" href="#L1819">1819</a><a id="L1820" href="#L1820">1820</a><a id="L1821" href="#L1821">1821</a><a id="L1822" href="#L1822">1822</a><a id="L1823" href="#L1823">1823</a><a id="L1824" href="#L1824">1824</a><a id="L1825" href="#L1825">1825</a><a id="L1826" href="#L1826">1826</a><a id="L1827" href="#L1827">1827</a><a id="L1828" href="#L1828">1828</a><a id="L1829" href="#L1829">1829</a><a id="L1830" href="#L1830">1830</a><a id="L1831" href="#L1831">1831</a><a id="L1832" href="#L1832">1832</a><a id="L1833" href="#L1833">1833</a><a id="L1834" href="#L1834">1834</a><a id="L1835" href="#L1835">1835</a><a id="L1836" href="#L1836">1836</a><a id="L1837" href="#L1837">1837</a><a id="L1838" href="#L1838">1838</a><a id="L1839" href="#L1839">1839</a><a id="L1840" href="#L1840">1840</a><a id="L1841" href="#L1841">1841</a><a id="L1842" href="#L1842">1842</a><a id="L1843" href="#L1843">1843</a><a id="L1844" href="#L1844">1844</a><a id="L1845" href="#L1845">1845</a><a id="L1846" href="#L1846">1846</a><a id="L1847" href="#L1847">1847</a><a id="L1848" href="#L1848">1848</a><a id="L1849" href="#L1849">1849</a><a id="L1850" href="#L1850">1850</a><a id="L1851" href="#L1851">1851</a><a id="L1852" href="#L1852">1852</a><a id="L1853" href="#L1853">1853</a><a id="L1854" href="#L1854">1854</a><a id="L1855" href="#L1855">1855</a><a id="L1856" href="#L1856">1856</a><a id="L1857" href="#L1857">1857</a><a id="L1858" href="#L1858">1858</a><a id="L1859" href="#L1859">1859</a><a id="L1860" href="#L1860">1860</a><a id="L1861" href="#L1861">1861</a><a id="L1862" href="#L1862">1862</a><a id="L1863" href="#L1863">1863</a><a id="L1864" href="#L1864">1864</a><a id="L1865" href="#L1865">1865</a><a id="L1866" href="#L1866">1866</a><a id="L1867" href="#L1867">1867</a><a id="L1868" href="#L1868">1868</a><a id="L1869" href="#L1869">1869</a><a id="L1870" href="#L1870">1870</a><a id="L1871" href="#L1871">1871</a><a id="L1872" href="#L1872">1872</a><a id="L1873" href="#L1873">1873</a><a id="L1874" href="#L1874">1874</a><a id="L1875" href="#L1875">1875</a><a id="L1876" href="#L1876">1876</a><a id="L1877" href="#L1877">1877</a><a id="L1878" href="#L1878">1878</a><a id="L1879" href="#L1879">1879</a><a id="L1880" href="#L1880">1880</a><a id="L1881" href="#L1881">1881</a><a id="L1882" href="#L1882">1882</a><a id="L1883" href="#L1883">1883</a><a id="L1884" href="#L1884">1884</a><a id="L1885" href="#L1885">1885</a><a id="L1886" href="#L1886">1886</a><a id="L1887" href="#L1887">1887</a><a id="L1888" href="#L1888">1888</a><a id="L1889" href="#L1889">1889</a><a id="L1890" href="#L1890">1890</a><a id="L1891" href="#L1891">1891</a><a id="L1892" href="#L1892">1892</a><a id="L1893" href="#L1893">1893</a><a id="L1894" href="#L1894">1894</a><a id="L1895" href="#L1895">1895</a><a id="L1896" href="#L1896">1896</a><a id="L1897" href="#L1897">1897</a><a id="L1898" href="#L1898">1898</a><a id="L1899" href="#L1899">1899</a><a id="L1900" href="#L1900">1900</a><a id="L1901" href="#L1901">1901</a><a id="L1902" href="#L1902">1902</a><a id="L1903" href="#L1903">1903</a><a id="L1904" href="#L1904">1904</a><a id="L1905" href="#L1905">1905</a><a id="L1906" href="#L1906">1906</a><a id="L1907" href="#L1907">1907</a><a id="L1908" href="#L1908">1908</a><a id="L1909" href="#L1909">1909</a><a id="L1910" href="#L1910">1910</a><a id="L1911" href="#L1911">1911</a><a id="L1912" href="#L1912">1912</a><a id="L1913" href="#L1913">1913</a><a id="L1914" href="#L1914">1914</a><a id="L1915" href="#L1915">1915</a><a id="L1916" href="#L1916">1916</a><a id="L1917" href="#L1917">1917</a><a id="L1918" href="#L1918">1918</a><a id="L1919" href="#L1919">1919</a><a id="L1920" href="#L1920">1920</a><a id="L1921" href="#L1921">1921</a><a id="L1922" href="#L1922">1922</a><a id="L1923" href="#L1923">1923</a><a id="L1924" href="#L1924">1924</a><a id="L1925" href="#L1925">1925</a><a id="L1926" href="#L1926">1926</a><a id="L1927" href="#L1927">1927</a><a id="L1928" href="#L1928">1928</a><a id="L1929" href="#L1929">1929</a><a id="L1930" href="#L1930">1930</a><a id="L1931" href="#L1931">1931</a><a id="L1932" href="#L1932">1932</a><a id="L1933" href="#L1933">1933</a><a id="L1934" href="#L1934">1934</a><a id="L1935" href="#L1935">1935</a><a id="L1936" href="#L1936">1936</a><a id="L1937" href="#L1937">1937</a><a id="L1938" href="#L1938">1938</a><a id="L1939" href="#L1939">1939</a><a id="L1940" href="#L1940">1940</a><a id="L1941" href="#L1941">1941</a><a id="L1942" href="#L1942">1942</a><a id="L1943" href="#L1943">1943</a><a id="L1944" href="#L1944">1944</a><a id="L1945" href="#L1945">1945</a><a id="L1946" href="#L1946">1946</a><a id="L1947" href="#L1947">1947</a><a id="L1948" href="#L1948">1948</a><a id="L1949" href="#L1949">1949</a><a id="L1950" href="#L1950">1950</a><a id="L1951" href="#L1951">1951</a><a id="L1952" href="#L1952">1952</a><a id="L1953" href="#L1953">1953</a><a id="L1954" href="#L1954">1954</a><a id="L1955" href="#L1955">1955</a><a id="L1956" href="#L1956">1956</a><a id="L1957" href="#L1957">1957</a><a id="L1958" href="#L1958">1958</a><a id="L1959" href="#L1959">1959</a><a id="L1960" href="#L1960">1960</a><a id="L1961" href="#L1961">1961</a><a id="L1962" href="#L1962">1962</a><a id="L1963" href="#L1963">1963</a><a id="L1964" href="#L1964">1964</a><a id="L1965" href="#L1965">1965</a><a id="L1966" href="#L1966">1966</a><a id="L1967" href="#L1967">1967</a><a id="L1968" href="#L1968">1968</a><a id="L1969" href="#L1969">1969</a><a id="L1970" href="#L1970">1970</a><a id="L1971" href="#L1971">1971</a><a id="L1972" href="#L1972">1972</a><a id="L1973" href="#L1973">1973</a><a id="L1974" href="#L1974">1974</a><a id="L1975" href="#L1975">1975</a><a id="L1976" href="#L1976">1976</a><a id="L1977" href="#L1977">1977</a><a id="L1978" href="#L1978">1978</a><a id="L1979" href="#L1979">1979</a><a id="L1980" href="#L1980">1980</a><a id="L1981" href="#L1981">1981</a><a id="L1982" href="#L1982">1982</a><a id="L1983" href="#L1983">1983</a><a id="L1984" href="#L1984">1984</a><a id="L1985" href="#L1985">1985</a><a id="L1986" href="#L1986">1986</a><a id="L1987" href="#L1987">1987</a><a id="L1988" href="#L1988">1988</a><a id="L1989" href="#L1989">1989</a><a id="L1990" href="#L1990">1990</a><a id="L1991" href="#L1991">1991</a><a id="L1992" href="#L1992">1992</a><a id="L1993" href="#L1993">1993</a><a id="L1994" href="#L1994">1994</a><a id="L1995" href="#L1995">1995</a><a id="L1996" href="#L1996">1996</a><a id="L1997" href="#L1997">1997</a><a id="L1998" href="#L1998">1998</a><a id="L1999" href="#L1999">1999</a><a id="L2000" href="#L2000">2000</a><a id="L2001" href="#L2001">2001</a><a id="L2002" href="#L2002">2002</a><a id="L2003" href="#L2003">2003</a><a id="L2004" href="#L2004">2004</a><a id="L2005" href="#L2005">2005</a><a id="L2006" href="#L2006">2006</a><a id="L2007" href="#L2007">2007</a><a id="L2008" href="#L2008">2008</a><a id="L2009" href="#L2009">2009</a><a id="L2010" href="#L2010">2010</a><a id="L2011" href="#L2011">2011</a><a id="L2012" href="#L2012">2012</a><a id="L2013" href="#L2013">2013</a><a id="L2014" href="#L2014">2014</a><a id="L2015" href="#L2015">2015</a><a id="L2016" href="#L2016">2016</a><a id="L2017" href="#L2017">2017</a><a id="L2018" href="#L2018">2018</a><a id="L2019" href="#L2019">2019</a><a id="L2020" href="#L2020">2020</a><a id="L2021" href="#L2021">2021</a><a id="L2022" href="#L2022">2022</a><a id="L2023" href="#L2023">2023</a><a id="L2024" href="#L2024">2024</a><a id="L2025" href="#L2025">2025</a><a id="L2026" href="#L2026">2026</a><a id="L2027" href="#L2027">2027</a><a id="L2028" href="#L2028">2028</a><a id="L2029" href="#L2029">2029</a><a id="L2030" href="#L2030">2030</a><a id="L2031" href="#L2031">2031</a><a id="L2032" href="#L2032">2032</a><a id="L2033" href="#L2033">2033</a><a id="L2034" href="#L2034">2034</a><a id="L2035" href="#L2035">2035</a><a id="L2036" href="#L2036">2036</a><a id="L2037" href="#L2037">2037</a><a id="L2038" href="#L2038">2038</a><a id="L2039" href="#L2039">2039</a><a id="L2040" href="#L2040">2040</a><a id="L2041" href="#L2041">2041</a><a id="L2042" href="#L2042">2042</a><a id="L2043" href="#L2043">2043</a><a id="L2044" href="#L2044">2044</a><a id="L2045" href="#L2045">2045</a><a id="L2046" href="#L2046">2046</a><a id="L2047" href="#L2047">2047</a><a id="L2048" href="#L2048">2048</a><a id="L2049" href="#L2049">2049</a><a id="L2050" href="#L2050">2050</a><a id="L2051" href="#L2051">2051</a><a id="L2052" href="#L2052">2052</a><a id="L2053" href="#L2053">2053</a><a id="L2054" href="#L2054">2054</a><a id="L2055" href="#L2055">2055</a><a id="L2056" href="#L2056">2056</a><a id="L2057" href="#L2057">2057</a><a id="L2058" href="#L2058">2058</a><a id="L2059" href="#L2059">2059</a><a id="L2060" href="#L2060">2060</a><a id="L2061" href="#L2061">2061</a><a id="L2062" href="#L2062">2062</a><a id="L2063" href="#L2063">2063</a><a id="L2064" href="#L2064">2064</a><a id="L2065" href="#L2065">2065</a><a id="L2066" href="#L2066">2066</a><a id="L2067" href="#L2067">2067</a><a id="L2068" href="#L2068">2068</a><a id="L2069" href="#L2069">2069</a><a id="L2070" href="#L2070">2070</a><a id="L2071" href="#L2071">2071</a><a id="L2072" href="#L2072">2072</a><a id="L2073" href="#L2073">2073</a><a id="L2074" href="#L2074">2074</a><a id="L2075" href="#L2075">2075</a><a id="L2076" href="#L2076">2076</a><a id="L2077" href="#L2077">2077</a><a id="L2078" href="#L2078">2078</a><a id="L2079" href="#L2079">2079</a><a id="L2080" href="#L2080">2080</a><a id="L2081" href="#L2081">2081</a><a id="L2082" href="#L2082">2082</a><a id="L2083" href="#L2083">2083</a><a id="L2084" href="#L2084">2084</a><a id="L2085" href="#L2085">2085</a><a id="L2086" href="#L2086">2086</a><a id="L2087" href="#L2087">2087</a><a id="L2088" href="#L2088">2088</a><a id="L2089" href="#L2089">2089</a><a id="L2090" href="#L2090">2090</a><a id="L2091" href="#L2091">2091</a><a id="L2092" href="#L2092">2092</a><a id="L2093" href="#L2093">2093</a><a id="L2094" href="#L2094">2094</a><a id="L2095" href="#L2095">2095</a><a id="L2096" href="#L2096">2096</a><a id="L2097" href="#L2097">2097</a><a id="L2098" href="#L2098">2098</a><a id="L2099" href="#L2099">2099</a><a id="L2100" href="#L2100">2100</a><a id="L2101" href="#L2101">2101</a><a id="L2102" href="#L2102">2102</a><a id="L2103" href="#L2103">2103</a><a id="L2104" href="#L2104">2104</a><a id="L2105" href="#L2105">2105</a><a id="L2106" href="#L2106">2106</a><a id="L2107" href="#L2107">2107</a><a id="L2108" href="#L2108">2108</a><a id="L2109" href="#L2109">2109</a><a id="L2110" href="#L2110">2110</a><a id="L2111" href="#L2111">2111</a><a id="L2112" href="#L2112">2112</a><a id="L2113" href="#L2113">2113</a><a id="L2114" href="#L2114">2114</a><a id="L2115" href="#L2115">2115</a><a id="L2116" href="#L2116">2116</a><a id="L2117" href="#L2117">2117</a><a id="L2118" href="#L2118">2118</a><a id="L2119" href="#L2119">2119</a><a id="L2120" href="#L2120">2120</a><a id="L2121" href="#L2121">2121</a><a id="L2122" href="#L2122">2122</a><a id="L2123" href="#L2123">2123</a><a id="L2124" href="#L2124">2124</a><a id="L2125" href="#L2125">2125</a><a id="L2126" href="#L2126">2126</a><a id="L2127" href="#L2127">2127</a><a id="L2128" href="#L2128">2128</a><a id="L2129" href="#L2129">2129</a><a id="L2130" href="#L2130">2130</a><a id="L2131" href="#L2131">2131</a><a id="L2132" href="#L2132">2132</a><a id="L2133" href="#L2133">2133</a><a id="L2134" href="#L2134">2134</a><a id="L2135" href="#L2135">2135</a><a id="L2136" href="#L2136">2136</a><a id="L2137" href="#L2137">2137</a><a id="L2138" href="#L2138">2138</a><a id="L2139" href="#L2139">2139</a><a id="L2140" href="#L2140">2140</a><a id="L2141" href="#L2141">2141</a><a id="L2142" href="#L2142">2142</a><a id="L2143" href="#L2143">2143</a><a id="L2144" href="#L2144">2144</a><a id="L2145" href="#L2145">2145</a><a id="L2146" href="#L2146">2146</a><a id="L2147" href="#L2147">2147</a><a id="L2148" href="#L2148">2148</a><a id="L2149" href="#L2149">2149</a><a id="L2150" href="#L2150">2150</a><a id="L2151" href="#L2151">2151</a><a id="L2152" href="#L2152">2152</a><a id="L2153" href="#L2153">2153</a><a id="L2154" href="#L2154">2154</a><a id="L2155" href="#L2155">2155</a><a id="L2156" href="#L2156">2156</a><a id="L2157" href="#L2157">2157</a><a id="L2158" href="#L2158">2158</a><a id="L2159" href="#L2159">2159</a><a id="L2160" href="#L2160">2160</a><a id="L2161" href="#L2161">2161</a><a id="L2162" href="#L2162">2162</a><a id="L2163" href="#L2163">2163</a><a id="L2164" href="#L2164">2164</a><a id="L2165" href="#L2165">2165</a><a id="L2166" href="#L2166">2166</a><a id="L2167" href="#L2167">2167</a><a id="L2168" href="#L2168">2168</a><a id="L2169" href="#L2169">2169</a><a id="L2170" href="#L2170">2170</a><a id="L2171" href="#L2171">2171</a><a id="L2172" href="#L2172">2172</a><a id="L2173" href="#L2173">2173</a><a id="L2174" href="#L2174">2174</a><a id="L2175" href="#L2175">2175</a><a id="L2176" href="#L2176">2176</a><a id="L2177" href="#L2177">2177</a><a id="L2178" href="#L2178">2178</a><a id="L2179" href="#L2179">2179</a><a id="L2180" href="#L2180">2180</a><a id="L2181" href="#L2181">2181</a><a id="L2182" href="#L2182">2182</a><a id="L2183" href="#L2183">2183</a><a id="L2184" href="#L2184">2184</a></td>
<td><td><pre class="sourcecode">
<span class="bc">/*******************************************************************************

        copyright:      Copyright (c) 2005 John Chapman. All rights reserved

        license:        BSD style: $(LICENSE)

        version:        Initial release: 2005

        author:         John Chapman

        Contains classes that provide information about locales, such as 
        the language and calendars, as well as cultural conventions used 
        for formatting dates, currency and numbers. Use these classes when 
        writing applications for an international audience.

******************************************************************************/</span>

<span class="bc">/**
 * $(MEMBERTABLE
 * $(TR
 * $(TH Interface)
 * $(TH Description)
 * )
 * $(TR
 * $(TD $(LINK2 #IFormatService, IFormatService))
 * $(TD Retrieves an object to control formatting.)
 * )
 * )
 *
 * $(MEMBERTABLE
 * $(TR
 * $(TH Class)
 * $(TH Description)
 * )
 * $(TR
 * $(TD $(LINK2 #Calendar, Calendar))
 * $(TD Represents time in week, month and year divisions.)
 * )
 * $(TR
 * $(TD $(LINK2 #Culture, Culture))
 * $(TD Provides information about a culture, such as its name, calendar and date and number format patterns.)
 * )
 * $(TR
 * $(TD $(LINK2 #DateTimeFormat, DateTimeFormat))
 * $(TD Determines how $(LINK2 #Time, Time) values are formatted, depending on the culture.)
 * )
 * $(TR
 * $(TD $(LINK2 #DaylightSavingTime, DaylightSavingTime))
 * $(TD Represents a period of daylight-saving time.)
 * )
 * $(TR
 * $(TD $(LINK2 #Gregorian, Gregorian))
 * $(TD Represents the Gregorian calendar.)
 * )
 * $(TR
 * $(TD $(LINK2 #Hebrew, Hebrew))
 * $(TD Represents the Hebrew calendar.)
 * )
 * $(TR
 * $(TD $(LINK2 #Hijri, Hijri))
 * $(TD Represents the Hijri calendar.)
 * )
 * $(TR
 * $(TD $(LINK2 #Japanese, Japanese))
 * $(TD Represents the Japanese calendar.)
 * )
 * $(TR
 * $(TD $(LINK2 #Korean, Korean))
 * $(TD Represents the Korean calendar.)
 * )
 * $(TR
 * $(TD $(LINK2 #NumberFormat, NumberFormat))
 * $(TD Determines how numbers are formatted, according to the current culture.)
 * )
 * $(TR
 * $(TD $(LINK2 #Region, Region))
 * $(TD Provides information about a region.)
 * )
 * $(TR
 * $(TD $(LINK2 #Taiwan, Taiwan))
 * $(TD Represents the Taiwan calendar.)
 * )
 * $(TR
 * $(TD $(LINK2 #ThaiBuddhist, ThaiBuddhist))
 * $(TD Represents the Thai Buddhist calendar.)
 * )
 * )
 *
 * $(MEMBERTABLE
 * $(TR
 * $(TH Struct)
 * $(TH Description)
 * )
 * $(TR
 * $(TD $(LINK2 #Time, Time))
 * $(TD Represents time expressed as a date and time of day.)
 * )
 * $(TR
 * $(TD $(LINK2 #TimeSpan, TimeSpan))
 * $(TD Represents a time interval.)
 * )
 * )
 */</span>

<span class="d Compound"><span class="d Module"><span class="k">module</span> <span class="i">tango</span>.<span class="i">text</span>.<span class="i">locale</span>.<span class="i">Core</span>;</span>

<span class="d Protection"><span class="k">private</span> <span class="d Import"><span class="k">import</span>  <span class="i">tango</span>.<span class="i">core</span>.<span class="i">Exception</span>;</span></span>

<span class="d Protection"><span class="k">private</span> <span class="d Import"><span class="k">import</span>  <span class="i">tango</span>.<span class="i">text</span>.<span class="i">locale</span>.<span class="i">Data</span>;</span></span>

<span class="d Protection"><span class="k">private</span> <span class="d Import"><span class="k">import</span>  <span class="i">tango</span>.<span class="i">time</span>.<span class="i">Time</span>;</span></span>

<span class="d Protection"><span class="k">private</span> <span class="d Import"><span class="k">import</span>  <span class="i">tango</span>.<span class="i">time</span>.<span class="i">chrono</span>.<span class="i">Hijri</span>,
                <span class="i">tango</span>.<span class="i">time</span>.<span class="i">chrono</span>.<span class="i">Korean</span>,
                <span class="i">tango</span>.<span class="i">time</span>.<span class="i">chrono</span>.<span class="i">Taiwan</span>,
                <span class="i">tango</span>.<span class="i">time</span>.<span class="i">chrono</span>.<span class="i">Hebrew</span>,
                <span class="i">tango</span>.<span class="i">time</span>.<span class="i">chrono</span>.<span class="i">Calendar</span>,
                <span class="i">tango</span>.<span class="i">time</span>.<span class="i">chrono</span>.<span class="i">Japanese</span>,
                <span class="i">tango</span>.<span class="i">time</span>.<span class="i">chrono</span>.<span class="i">Gregorian</span>,
                <span class="i">tango</span>.<span class="i">time</span>.<span class="i">chrono</span>.<span class="i">ThaiBuddhist</span>;</span></span>
        
<span class="d Version"><span class="k">version</span> (<span class="i">Windows</span>)
         <span class="d Protection"><span class="k">private</span> <span class="d Import"><span class="k">import</span> <span class="i">tango</span>.<span class="i">text</span>.<span class="i">locale</span>.<span class="i">Win32</span>;</span></span></span>

<span class="d Version"><span class="k">version</span> (<span class="i">Posix</span>)
         <span class="d Protection"><span class="k">private</span> <span class="d Import"><span class="k">import</span> <span class="i">tango</span>.<span class="i">text</span>.<span class="i">locale</span>.<span class="i">Posix</span>;</span></span></span>


<span class="lc">// Initializes an array.</span>
<span class="d Protection"><span class="k">private</span> <span class="d Template"><span class="k">template</span> <span class="i">arrayOf</span><span class="o TemplateParameters">(<span class="o TemplateTypeParameter"><span class="i">T</span></span>)</span> <span class="d Compound">{
  <span class="d Protection"><span class="k">private</span> <span class="d Function"><span class="t Identifier"><span class="i">T</span></span><span class="t Array">[]</span> <span class="i">arrayOf</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">T</span></span><span class="t Array">[]</span> <span class="i">params</span> ...</span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">params</span></span>.<span class="e Identifier"><span class="i">dup</span></span></span>;</span>
  }</span></span></span></span>
}</span></span></span>


<span class="bc">/**
 * Defines the types of cultures that can be retrieved from Culture.getCultures.
 */</span>
<span class="d Protection"><span class="k">public</span> <span class="d Enum"><span class="k">enum</span> <span class="i">CultureTypes</span> {
  <span class="d EnumMember"><span class="i">Neutral</span> = <span class="e Int"><span class="n">1</span></span></span>,             <span class="lc">/// Refers to cultures that are associated with a language but not specific to a country or region.</span>
  <span class="d EnumMember"><span class="i">Specific</span> = <span class="e Int"><span class="n">2</span></span></span>,            <span class="lc">/// Refers to cultures that are specific to a country or region.</span>
  <span class="d EnumMember"><span class="i">All</span> = <span class="e Or"><span class="e Identifier"><span class="i">Neutral</span></span> | <span class="e Identifier"><span class="i">Specific</span></span></span></span> <span class="lc">/// Refers to all cultures.</span>
}</span></span>


<span class="bc">/**
 * $(ANCHOR _IFormatService)
 * Retrieves an object to control formatting.
 * 
 * A class implements $(LINK2 #IFormatService_getFormat, getFormat) to retrieve an object that provides format information for the implementing type.
 * Remarks: IFormatService is implemented by $(LINK2 #Culture, Culture), $(LINK2 #NumberFormat, NumberFormat) and $(LINK2 #DateTimeFormat, DateTimeFormat) to provide locale-specific formatting of
 * numbers and date and time values.
 */</span>
<span class="d Protection"><span class="k">public</span> <span class="d Interface"><span class="k">interface</span> <span class="i">IFormatService</span> <span class="d Compound">{

  <span class="bc">/**
   * $(ANCHOR IFormatService_getFormat)
   * Retrieves an object that supports formatting for the specified _type.
   * Returns: The current instance if type is the same _type as the current instance; otherwise, null.
   * Params: type = An object that specifies the _type of formatting to retrieve.
   */</span>
  <span class="d Function"><span class="t Identifier"><span class="i">Object</span></span> <span class="i">getFormat</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">TypeInfo</span></span> <span class="i">type</span></span>)</span><span class="s FuncBody">;</span></span>

}</span></span></span>

<span class="bc">/**
 * $(ANCHOR _Culture)
 * Provides information about a culture, such as its name, calendar and date and number format patterns.
 * Remarks: tango.text.locale adopts the RFC 1766 standard for culture names in the format &amp;lt;language&amp;gt;"-"&amp;lt;region&amp;gt;. 
 * &amp;lt;language&amp;gt; is a lower-case two-letter code defined by ISO 639-1. &amp;lt;region&amp;gt; is an upper-case 
 * two-letter code defined by ISO 3166. For example, "en-GB" is UK English.
 * $(BR)$(BR)There are three types of culture: invariant, neutral and specific. The invariant culture is not tied to
 * any specific region, although it is associated with the English language. A neutral culture is associated with
 * a language, but not with a region. A specific culture is associated with a language and a region. "es" is a neutral 
 * culture. "es-MX" is a specific culture.
 * $(BR)$(BR)Instances of $(LINK2 #DateTimeFormat, DateTimeFormat) and $(LINK2 #NumberFormat, NumberFormat) cannot be created for neutral cultures.
 * Examples:
 * ---
 * import tango.io.Stdout, tango.text.locale.Core;
 *
 * void main() {
 *   Culture culture = new Culture("it-IT");
 *
 *   Stdout.formatln("englishName: {}", culture.englishName);
 *   Stdout.formatln("nativeName: {}", culture.nativeName);
 *   Stdout.formatln("name: {}", culture.name);
 *   Stdout.formatln("parent: {}", culture.parent.name);
 *   Stdout.formatln("isNeutral: {}", culture.isNeutral);
 * }
 *
 * // Produces the following output:
 * // englishName: Italian (Italy)
 * // nativeName: italiano (Italia)
 * // name: it-IT
 * // parent: it
 * // isNeutral: false
 * ---
 */</span>
<span class="d Protection"><span class="k">public</span> <span class="d Class"><span class="k">class</span> <span class="i">Culture</span> : <span class="t BaseClass"><span class="t Identifier"><span class="i">IFormatService</span></span></span> <span class="d Compound">{

  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">const</span> <span class="d Variables"><span class="t Integral"><span class="k">int</span></span> <span class="i">LCID_INVARIANT</span> = <span class="e Int"><span class="n">0x007F</span></span>;</span></span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span><span class="t Array">[<span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span>]</span> <span class="i">namedCultures</span>;</span></span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span><span class="t Array">[<span class="t Integral"><span class="k">int</span></span>]</span> <span class="i">idCultures</span>;</span></span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span><span class="t Array">[<span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span>]</span> <span class="i">ietfCultures</span>;</span></span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">currentCulture_</span>;</span></span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">userDefaultCulture_</span>;</span></span></span> <span class="lc">// The user's default culture (GetUserDefaultLCID).</span>
  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">invariantCulture_</span>;</span></span></span> <span class="lc">// The invariant culture is associated with the English language.</span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Identifier"><span class="i">Calendar</span></span> <span class="i">calendar_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">parent_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Identifier"><span class="i">CultureData</span></span><span class="t Pointer">*</span> <span class="i">cultureData_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">bool</span></span> <span class="i">isReadOnly_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Identifier"><span class="i">NumberFormat</span></span> <span class="i">numberFormat_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Identifier"><span class="i">DateTimeFormat</span></span> <span class="i">dateTimeFormat_</span>;</span></span>

  <span class="d StaticConstructor"><span class="k">static</span> <span class="k">this</span>() <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">invariantCulture_</span></span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Culture</span></span>(<span class="e Identifier"><span class="i">LCID_INVARIANT</span></span>)</span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">invariantCulture_</span></span>.<span class="e Identifier"><span class="i">isReadOnly_</span></span></span> = <span class="e Bool"><span class="k">true</span></span></span>;</span>

    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Culture</span></span>(<span class="e Call"><span class="e Dot"><span class="e Identifier"><span class="i">nativeMethods</span></span>.<span class="e Identifier"><span class="i">getUserCulture</span></span></span>()</span>)</span></span>;</span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="lc">// Fallback</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span> = <span class="e Identifier"><span class="i">invariantCulture</span></span></span>;</span>
    <span class="k">else</span>
      <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span>.<span class="e Identifier"><span class="i">isReadOnly_</span></span></span> = <span class="e Bool"><span class="k">true</span></span></span>;</span></span>
  }</span></span></span>

  <span class="d StaticDestructor"><span class="k">static</span> ~<span class="k">this</span>() <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">namedCultures</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">idCultures</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">ietfCultures</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
  }</span></span></span>

  <span class="bc">/**
   * Initializes a new Culture instance from the supplied name.
   * Params: cultureName = The name of the Culture.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Constructor"><span class="k">this</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">cultureName</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">cultureData_</span></span> = <span class="e Call"><span class="e Dot"><span class="e Identifier"><span class="i">CultureData</span></span>.<span class="e Identifier"><span class="i">getDataFromCultureName</span></span></span>(<span class="i">cultureName</span>)</span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * Initializes a new Culture instance from the supplied culture identifier.
   * Params: cultureID = The identifer (LCID) of the Culture.
   * Remarks: Culture identifiers correspond to a Windows LCID.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Constructor"><span class="k">this</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">cultureID</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">cultureData_</span></span> = <span class="e Call"><span class="e Dot"><span class="e Identifier"><span class="i">CultureData</span></span>.<span class="e Identifier"><span class="i">getDataFromCultureID</span></span></span>(<span class="i">cultureID</span>)</span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * Retrieves an object defining how to format the specified type.
   * Params: type = The TypeInfo of the resulting formatting object.
   * Returns: If type is typeid($(LINK2 #NumberFormat, NumberFormat)), the value of the $(LINK2 #Culture_numberFormat, numberFormat) property. If type is typeid($(LINK2 #DateTimeFormat, DateTimeFormat)), the
   * value of the $(LINK2 #Culture_dateTimeFormat, dateTimeFormat) property. Otherwise, null.
   * Remarks: Implements $(LINK2 #IFormatService_getFormat, IFormatService.getFormat).
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Identifier"><span class="i">Object</span></span> <span class="i">getFormat</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">TypeInfo</span></span> <span class="i">type</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">type</span></span> <span class="k">is</span> <span class="e Typeid"><span class="k">typeid</span>(<span class="t Identifier"><span class="i">NumberFormat</span></span>)</span></span>)
      <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">numberFormat</span></span>;</span>
    <span class="k">else</span> <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">type</span></span> <span class="k">is</span> <span class="e Typeid"><span class="k">typeid</span>(<span class="t Identifier"><span class="i">DateTimeFormat</span></span>)</span></span>)
      <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">dateTimeFormat</span></span>;</span></span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Null"><span class="k">null</span></span>;</span>
  }</span></span></span></span>

<span class="d Version"><span class="k">version</span> (<span class="i">Clone</span>)
<span class="d Compound">{
  <span class="bc">/**
   * Copies the current Culture instance.
   * Returns: A copy of the current Culture instance.
   * Remarks: The values of the $(LINK2 #Culture_numberFormat, numberFormat), $(LINK2 #Culture_dateTimeFormat, dateTimeFormat) and $(LINK2 #Culture_calendar, calendar) properties are copied also.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Identifier"><span class="i">Object</span></span> <span class="i">clone</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">culture</span> = <span class="e Call"><span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">Culture</span></span>)<span class="e Identifier"><span class="i">cloneObject</span></span></span>(<span class="k">this</span>)</span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Dot"><span class="e Not">!<span class="e Identifier"><span class="i">culture</span></span></span>.<span class="e Identifier"><span class="i">isNeutral</span></span></span>) <span class="s Compound">{
      <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">dateTimeFormat_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
        <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">dateTimeFormat_</span></span></span> = <span class="e Call"><span class="e Dot"><span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">DateTimeFormat</span></span>)<span class="e Identifier"><span class="i">dateTimeFormat_</span></span></span>.<span class="e Identifier"><span class="i">clone</span></span></span>()</span></span>;</span></span>
      <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">numberFormat_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
        <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">numberFormat_</span></span></span> = <span class="e Call"><span class="e Dot"><span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">NumberFormat</span></span>)<span class="e Identifier"><span class="i">numberFormat_</span></span></span>.<span class="e Identifier"><span class="i">clone</span></span></span>()</span></span>;</span></span>
    }</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">calendar_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">calendar_</span></span></span> = <span class="e Call"><span class="e Dot"><span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">Calendar</span></span>)<span class="e Identifier"><span class="i">calendar_</span></span></span>.<span class="e Identifier"><span class="i">clone</span></span></span>()</span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">culture</span></span>;</span>
  }</span></span></span></span>
}</span></span>

  <span class="bc">/**
   * Returns a read-only instance of a culture using the specified culture identifier.
   * Params: cultureID = The identifier of the culture.
   * Returns: A read-only culture instance.
   * Remarks: Instances returned by this method are cached.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">getCulture</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">cultureID</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">culture</span> = <span class="e Call"><span class="e Identifier"><span class="i">getCultureInternal</span></span>(<span class="i">cultureID</span>, <span class="k">null</span>)</span>;</span></span>

<span class="s Version"><span class="k">version</span> (<span class="i">Posix</span>) <span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">culture</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
        <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">error</span></span> (<span class="sl">"Culture not found - if this was not tried set by the application, Tango\n"</span>
            ~ <span class="sl">"will expect that a locale is set via environment variables LANG or LC_ALL."</span>)</span>;</span></span>
}</span></span>

    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">culture</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * Returns a read-only instance of a culture using the specified culture name.
   * Params: cultureName = The name of the culture.
   * Returns: A read-only culture instance.
   * Remarks: Instances returned by this method are cached.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">getCulture</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">cultureName</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">cultureName</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
       <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">error</span></span>(<span class="sl">"Value cannot be null."</span>)</span>;</span></span>
    <span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">culture</span> = <span class="e Call"><span class="e Identifier"><span class="i">getCultureInternal</span></span>(<span class="n">0</span>, <span class="i">cultureName</span>)</span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">culture</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">error</span></span>(<span class="sl">"Culture name "</span> ~ <span class="i">cultureName</span> ~ <span class="sl">" is not supported."</span>)</span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">culture</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
    * Returns a read-only instance using the specified name, as defined by the RFC 3066 standard and maintained by the IETF.
    * Params: name = The name of the language.
    * Returns: A read-only culture instance.
    */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">getCultureFromIetfLanguageTag</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">name</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">name</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">error</span></span>(<span class="sl">"Value cannot be null."</span>)</span>;</span></span>
    <span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">culture</span> = <span class="e Call"><span class="e Identifier"><span class="i">getCultureInternal</span></span>(-<span class="n">1</span>, <span class="i">name</span>)</span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">culture</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">error</span></span>(<span class="sl">"Culture IETF name "</span> ~ <span class="i">name</span> ~ <span class="sl">" is not a known IETF name."</span>)</span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">culture</span></span>;</span>
  }</span></span></span></span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">getCultureInternal</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">cultureID</span></span>, <span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">cname</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="lc">// If cultureID is - 1, name is an IETF name; if it's 0, name is a culture name; otherwise, it's a valid LCID.</span>
    <span class="s Declaration"><span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">name</span> = <span class="e Identifier"><span class="i">cname</span></span>;</span></span> 
    <span class="s Foreach"><span class="k">foreach</span> (<span class="o Parameters"><span class="o Parameter"><span class="i">i</span></span>, <span class="o Parameter"><span class="i">c</span></span></span>; <span class="e Identifier"><span class="i">cname</span></span>)
       <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">c</span></span> <span class="k">is</span> <span class="e Char"><span class="cl">'_'</span></span></span>) <span class="s Compound">{
         <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">name</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cname</span></span>.<span class="e Identifier"><span class="i">dup</span></span></span></span>;</span>
         <span class="s Expression"><span class="e Assign"><span class="e Index"><span class="e Identifier"><span class="i">name</span></span>[<span class="e Identifier"><span class="i">i</span></span>]</span> = <span class="e Char"><span class="cl">'-'</span></span></span>;</span>
         <span class="s Break"><span class="k">break</span>;</span>
       }</span></span></span>

    <span class="lc">// Look up tables first.</span>
    <span class="s If"><span class="k">if</span> (<span class="e Equal"><span class="e Identifier"><span class="i">cultureID</span></span> == <span class="e Int"><span class="n">0</span></span></span>) <span class="s Compound">{
      <span class="s If"><span class="k">if</span> (<span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span><span class="t Pointer">*</span> <span class="i">culture</span> = <span class="e In"><span class="e Identifier"><span class="i">name</span></span> <span class="k">in</span> <span class="e Identifier"><span class="i">namedCultures</span></span></span></span></span>)
        <span class="s Return"><span class="k">return</span> <span class="e Deref">*<span class="e Identifier"><span class="i">culture</span></span></span>;</span></span>
    }</span>
    <span class="k">else</span> <span class="s If"><span class="k">if</span> (<span class="e Rel"><span class="e Identifier"><span class="i">cultureID</span></span> &gt; <span class="e Int"><span class="n">0</span></span></span>) <span class="s Compound">{
      <span class="s If"><span class="k">if</span> (<span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span><span class="t Pointer">*</span> <span class="i">culture</span> = <span class="e In"><span class="e Identifier"><span class="i">cultureID</span></span> <span class="k">in</span> <span class="e Identifier"><span class="i">idCultures</span></span></span></span></span>)
        <span class="s Return"><span class="k">return</span> <span class="e Deref">*<span class="e Identifier"><span class="i">culture</span></span></span>;</span></span>
    }</span>
    <span class="k">else</span> <span class="s If"><span class="k">if</span> (<span class="e Equal"><span class="e Identifier"><span class="i">cultureID</span></span> == <span class="e Sign">-<span class="e Int"><span class="n">1</span></span></span></span>) <span class="s Compound">{
      <span class="s If"><span class="k">if</span> (<span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span><span class="t Pointer">*</span> <span class="i">culture</span> = <span class="e In"><span class="e Identifier"><span class="i">name</span></span> <span class="k">in</span> <span class="e Identifier"><span class="i">ietfCultures</span></span></span></span></span>)
        <span class="s Return"><span class="k">return</span> <span class="e Deref">*<span class="e Identifier"><span class="i">culture</span></span></span>;</span></span>
    }</span></span></span></span>

    <span class="lc">// Nothing found, create a new instance.</span>
    <span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">culture</span>;</span></span>

    <span class="s Try"><span class="s Catch"><span class="k">try</span> <span class="s Compound">{
      <span class="s If"><span class="k">if</span> (<span class="e Equal"><span class="e Identifier"><span class="i">cultureID</span></span> == <span class="e Sign">-<span class="e Int"><span class="n">1</span></span></span></span>) <span class="s Compound">{
        <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">name</span></span> = <span class="e Call"><span class="e Dot"><span class="e Identifier"><span class="i">CultureData</span></span>.<span class="e Identifier"><span class="i">getCultureNameFromIetfName</span></span></span>(<span class="i">name</span>)</span></span>;</span>
        <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">name</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
          <span class="s Return"><span class="k">return</span> <span class="e Null"><span class="k">null</span></span>;</span></span>
      }</span>
      <span class="k">else</span> <span class="s If"><span class="k">if</span> (<span class="e Equal"><span class="e Identifier"><span class="i">cultureID</span></span> == <span class="e Int"><span class="n">0</span></span></span>)
        <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">culture</span></span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Culture</span></span>(<span class="e Identifier"><span class="i">name</span></span>)</span></span>;</span>
      <span class="k">else</span> <span class="s If"><span class="k">if</span> (<span class="e AndAnd"><span class="e Identity"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span> &amp;&amp; <span class="e Equal"><span class="e Dot"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span>.<span class="e Identifier"><span class="i">id</span></span></span> == <span class="e Identifier"><span class="i">cultureID</span></span></span></span>) <span class="s Compound">{
        <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">culture</span></span> = <span class="e Identifier"><span class="i">userDefaultCulture_</span></span></span>;</span>
      }</span>
      <span class="k">else</span>
        <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">culture</span></span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Culture</span></span>(<span class="e Identifier"><span class="i">cultureID</span></span>)</span></span>;</span></span></span></span>
    }</span>
    <span class="k">catch</span> (<span class="o Parameter"><span class="t Identifier"><span class="i">LocaleException</span></span></span>) <span class="s Compound">{
      <span class="s Return"><span class="k">return</span> <span class="e Null"><span class="k">null</span></span>;</span>
    }</span></span></span>

    <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">isReadOnly_</span></span></span> = <span class="e Bool"><span class="k">true</span></span></span>;</span>

    <span class="lc">// Now cache the new instance in all tables.</span>
    <span class="s Expression"><span class="e Assign"><span class="e Index"><span class="e Identifier"><span class="i">ietfCultures</span></span>[<span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">ietfLanguageTag</span></span></span>]</span> = <span class="e Identifier"><span class="i">culture</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Index"><span class="e Identifier"><span class="i">namedCultures</span></span>[<span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">name</span></span></span>]</span> = <span class="e Identifier"><span class="i">culture</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Index"><span class="e Identifier"><span class="i">idCultures</span></span>[<span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">id</span></span></span>]</span> = <span class="e Identifier"><span class="i">culture</span></span></span>;</span>

    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">culture</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * Returns a list of cultures filtered by the specified $(LINK2 constants.html#CultureTypes, CultureTypes).
   * Params: types = A combination of CultureTypes.
   * Returns: An array of Culture instances containing cultures specified by types.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">Culture</span></span><span class="t Array">[]</span> <span class="i">getCultures</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">CultureTypes</span></span> <span class="i">types</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Declaration"><span class="d Variables"><span class="t Integral"><span class="k">bool</span></span> <span class="i">includeSpecific</span> = <span class="e Equal"><span class="e Paren">(<span class="e And"><span class="e Identifier"><span class="i">types</span></span> &amp; <span class="e Dot"><span class="e Identifier"><span class="i">CultureTypes</span></span>.<span class="e Identifier"><span class="i">Specific</span></span></span></span>)</span> != <span class="e Int"><span class="n">0</span></span></span>;</span></span>
    <span class="s Declaration"><span class="d Variables"><span class="t Integral"><span class="k">bool</span></span> <span class="i">includeNeutral</span> = <span class="e Equal"><span class="e Paren">(<span class="e And"><span class="e Identifier"><span class="i">types</span></span> &amp; <span class="e Dot"><span class="e Identifier"><span class="i">CultureTypes</span></span>.<span class="e Identifier"><span class="i">Neutral</span></span></span></span>)</span> != <span class="e Int"><span class="n">0</span></span></span>;</span></span>

    <span class="s Declaration"><span class="d Variables"><span class="t Integral"><span class="k">int</span></span><span class="t Array">[]</span> <span class="i">cultures</span>;</span></span>
    <span class="s For"><span class="k">for</span> (<span class="s Declaration"><span class="d Variables"><span class="t Integral"><span class="k">int</span></span> <span class="i">i</span> = <span class="e Int"><span class="n">0</span></span>;</span></span> <span class="e Rel"><span class="e Identifier"><span class="i">i</span></span> &lt; <span class="e Dot"><span class="e Dot"><span class="e Identifier"><span class="i">CultureData</span></span>.<span class="e Identifier"><span class="i">cultureDataTable</span></span></span>.<span class="e Identifier"><span class="i">length</span></span></span></span>; <span class="e PostIncr"><span class="e Identifier"><span class="i">i</span></span>++</span>) <span class="s Compound">{
      <span class="s If"><span class="k">if</span> (<span class="e OrOr"><span class="e Paren">(<span class="e AndAnd"><span class="e Dot"><span class="e Index"><span class="e Dot"><span class="e Identifier"><span class="i">CultureData</span></span>.<span class="e Identifier"><span class="i">cultureDataTable</span></span></span>[<span class="e Identifier"><span class="i">i</span></span>]</span>.<span class="e Identifier"><span class="i">isNeutral</span></span></span> &amp;&amp; <span class="e Identifier"><span class="i">includeNeutral</span></span></span>)</span> || <span class="e Paren">(<span class="e AndAnd"><span class="e Dot"><span class="e Index"><span class="e Dot"><span class="e Not">!<span class="e Identifier"><span class="i">CultureData</span></span></span>.<span class="e Identifier"><span class="i">cultureDataTable</span></span></span>[<span class="e Identifier"><span class="i">i</span></span>]</span>.<span class="e Identifier"><span class="i">isNeutral</span></span></span> &amp;&amp; <span class="e Identifier"><span class="i">includeSpecific</span></span></span>)</span></span>)
        <span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">cultures</span></span> ~= <span class="e Dot"><span class="e Index"><span class="e Dot"><span class="e Identifier"><span class="i">CultureData</span></span>.<span class="e Identifier"><span class="i">cultureDataTable</span></span></span>[<span class="e Identifier"><span class="i">i</span></span>]</span>.<span class="e Identifier"><span class="i">lcid</span></span></span></span>;</span></span>
    }</span></span>

    <span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span><span class="t Array">[]</span> <span class="i">result</span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Culture</span></span><span class="t Array">[<span class="t Qualified"><span class="t Identifier"><span class="i">cultures</span></span>.<span class="t Identifier"><span class="i">length</span></span></span>]</span></span>;</span></span>
    <span class="s Foreach"><span class="k">foreach</span> (<span class="o Parameters"><span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">i</span></span>, <span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">cultureID</span></span></span>; <span class="e Identifier"><span class="i">cultures</span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Index"><span class="e Identifier"><span class="i">result</span></span>[<span class="e Identifier"><span class="i">i</span></span>]</span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Culture</span></span>(<span class="e Identifier"><span class="i">cultureID</span></span>)</span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">result</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * Returns the name of the Culture.
   * Returns: A string containing the name of the Culture in the format &amp;lt;language&amp;gt;"-"&amp;lt;region&amp;gt;.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">override</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">toString</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">name</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">override</span> <span class="d Function"><span class="t Integral"><span class="k">int</span></span> <span class="i">opEquals</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">Object</span></span> <span class="i">obj</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">obj</span></span> <span class="k">is</span> <span class="e This"><span class="k">this</span></span></span>)
      <span class="s Return"><span class="k">return</span> <span class="e Bool"><span class="k">true</span></span>;</span></span>
    <span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">other</span> = <span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">Culture</span></span>)<span class="e Identifier"><span class="i">obj</span></span></span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">other</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Return"><span class="k">return</span> <span class="e Bool"><span class="k">false</span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Equal"><span class="e Dot"><span class="e Identifier"><span class="i">other</span></span>.<span class="e Identifier"><span class="i">name</span></span></span> == <span class="e Identifier"><span class="i">name</span></span></span>;</span> <span class="lc">// This needs to be changed so it's culturally aware.</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR Culture_current)
   * $(I Property.) Retrieves the culture of the current user.
   * Returns: The Culture instance representing the user's current culture.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">current</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">currentCulture_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">currentCulture_</span></span>;</span></span>

    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>) <span class="s Compound">{
      <span class="lc">// If the user has changed their locale settings since last we checked, invalidate our data.</span>
      <span class="s If"><span class="k">if</span> (<span class="e Equal"><span class="e Dot"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span>.<span class="e Identifier"><span class="i">id</span></span></span> != <span class="e Call"><span class="e Dot"><span class="e Identifier"><span class="i">nativeMethods</span></span>.<span class="e Identifier"><span class="i">getUserCulture</span></span></span>()</span></span>)
        <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span></span>
    }</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>) <span class="s Compound">{
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Culture</span></span>(<span class="e Call"><span class="e Dot"><span class="e Identifier"><span class="i">nativeMethods</span></span>.<span class="e Identifier"><span class="i">getUserCulture</span></span></span>()</span>)</span></span>;</span>
      <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
        <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span> = <span class="e Identifier"><span class="i">invariantCulture</span></span></span>;</span>
      <span class="k">else</span>
        <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">userDefaultCulture_</span></span>.<span class="e Identifier"><span class="i">isReadOnly_</span></span></span> = <span class="e Bool"><span class="k">true</span></span></span>;</span></span>
    }</span></span>

    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">userDefaultCulture_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the culture of the _current user.
   * Params: value = The Culture instance representing the user's _current culture.
   * Examples:
   * The following examples shows how to change the _current culture.
   * ---
   * import tango.io.Print, tango.text.locale.Common;
   *
   * void main() {
   *   // Displays the name of the current culture.
   *   Println("The current culture is %s.", Culture.current.englishName);
   *
   *   // Changes the current culture to el-GR.
   *   Culture.current = new Culture("el-GR");
   *   Println("The current culture is now %s.", Culture.current.englishName);
   * }
   *
   * // Produces the following output:
   * // The current culture is English (United Kingdom).
   * // The current culture is now Greek (Greece).
   * ---
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">current</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkNeutral</span></span>(<span class="i">value</span>)</span>;</span>
    <span class="s Expression"><span class="e Call"><span class="e Dot"><span class="e Identifier"><span class="i">nativeMethods</span></span>.<span class="e Identifier"><span class="i">setUserCulture</span></span></span>(<span class="i">value</span>.<span class="i">id</span>)</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currentCulture_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the invariant Culture.
   * Returns: The Culture instance that is invariant.
   * Remarks: The invariant culture is culture-independent. It is not tied to any specific region, but is associated
   * with the English language.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">invariantCulture</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">invariantCulture_</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the identifier of the Culture.
   * Returns: The culture identifier of the current instance.
   * Remarks: The culture identifier corresponds to the Windows locale identifier (LCID). It can therefore be used when 
   * interfacing with the Windows NLS functions.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">int</span></span> <span class="i">id</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">lcid</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR Culture_name)
   * $(I Property.) Retrieves the name of the Culture in the format &amp;lt;language&amp;gt;"-"&amp;lt;region&amp;gt;.
   * Returns: The name of the current instance. For example, the name of the UK English culture is "en-GB".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">name</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">name</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the name of the Culture in the format &amp;lt;languagename&amp;gt; (&amp;lt;regionname&amp;gt;) in English.
   * Returns: The name of the current instance in English. For example, the englishName of the UK English culture 
   * is "English (United Kingdom)".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">englishName</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">englishName</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the name of the Culture in the format &amp;lt;languagename&amp;gt; (&amp;lt;regionname&amp;gt;) in its native language.
   * Returns: The name of the current instance in its native language. For example, if Culture.name is "de-DE", nativeName is 
   * "Deutsch (Deutschland)".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">nativeName</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">nativeName</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the two-letter language code of the culture.
   * Returns: The two-letter language code of the Culture instance. For example, the twoLetterLanguageName for English is "en".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">twoLetterLanguageName</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">isoLangName</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the three-letter language code of the culture.
   * Returns: The three-letter language code of the Culture instance. For example, the threeLetterLanguageName for English is "eng".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">threeLetterLanguageName</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">isoLangName2</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the RFC 3066 identification for a language.
   * Returns: A string representing the RFC 3066 language identification.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">ietfLanguageTag</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">ietfTag</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the Culture representing the parent of the current instance.
   * Returns: The Culture representing the parent of the current instance.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">parent</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">parent_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>) <span class="s Compound">{
      <span class="s Try"><span class="s Catch"><span class="k">try</span> <span class="s Compound">{
        <span class="s Declaration"><span class="d Variables"><span class="t Integral"><span class="k">int</span></span> <span class="i">parentCulture</span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">parent</span></span></span>;</span></span>
        <span class="s If"><span class="k">if</span> (<span class="e Equal"><span class="e Identifier"><span class="i">parentCulture</span></span> == <span class="e Identifier"><span class="i">LCID_INVARIANT</span></span></span>)
          <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">parent_</span></span> = <span class="e Identifier"><span class="i">invariantCulture</span></span></span>;</span>
        <span class="k">else</span>
          <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">parent_</span></span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Culture</span></span>(<span class="e Identifier"><span class="i">parentCulture</span></span>)</span></span>;</span></span>
      }</span>
      <span class="k">catch</span> <span class="s Compound">{
        <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">parent_</span></span> = <span class="e Identifier"><span class="i">invariantCulture</span></span></span>;</span>
      }</span></span></span>
    }</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">parent_</span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves a value indicating whether the current instance is a neutral culture.
   * Returns: true is the current Culture represents a neutral culture; otherwise, false.
   * Examples:
   * The following example displays which cultures using Chinese are neutral.
   * ---
   * import tango.io.Print, tango.text.locale.Common;
   *
   * void main() {
   *   foreach (c; Culture.getCultures(CultureTypes.All)) {
   *     if (c.twoLetterLanguageName == "zh") {
   *       Print(c.englishName);
   *       if (c.isNeutral)
   *         Println("neutral");
   *       else
   *         Println("specific");
   *     }
   *   }
   * }
   *
   * // Produces the following output:
   * // Chinese (Simplified) - neutral
   * // Chinese (Taiwan) - specific
   * // Chinese (People's Republic of China) - specific
   * // Chinese (Hong Kong S.A.R.) - specific
   * // Chinese (Singapore) - specific
   * // Chinese (Macao S.A.R.) - specific
   * // Chinese (Traditional) - neutral
   * ---
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">bool</span></span> <span class="i">isNeutral</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">isNeutral</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves a value indicating whether the instance is read-only.
   * Returns: true if the instance is read-only; otherwise, false.
   * Remarks: If the culture is read-only, the $(LINK2 #Culture_dateTimeFormat, dateTimeFormat) and $(LINK2 #Culture_numberFormat, numberFormat) properties return 
   * read-only instances.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">bool</span></span> <span class="i">isReadOnly</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">isReadOnly_</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR Culture_calendar)
   * $(I Property.) Retrieves the calendar used by the culture.
   * Returns: A Calendar instance respresenting the calendar used by the culture.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Identifier"><span class="i">Calendar</span></span> <span class="i">calendar</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">calendar_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>) <span class="s Compound">{
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">calendar_</span></span> = <span class="e Call"><span class="e Identifier"><span class="i">getCalendarInstance</span></span>(<span class="i">cultureData_</span>.<span class="i">calendarType</span>, <span class="i">isReadOnly_</span>)</span></span>;</span>
    }</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">calendar_</span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the list of calendars that can be used by the culture.
   * Returns: An array of type Calendar representing the calendars that can be used by the culture.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Identifier"><span class="i">Calendar</span></span><span class="t Array">[]</span> <span class="i">optionalCalendars</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">Calendar</span></span><span class="t Array">[]</span> <span class="i">cals</span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Calendar</span></span><span class="t Array">[<span class="t Qualified"><span class="t Qualified"><span class="t Identifier"><span class="i">cultureData_</span></span>.<span class="t Identifier"><span class="i">optionalCalendars</span></span></span>.<span class="t Identifier"><span class="i">length</span></span></span>]</span></span>;</span></span>
    <span class="s Foreach"><span class="k">foreach</span> (<span class="o Parameters"><span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">i</span></span>, <span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">calID</span></span></span>; <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">optionalCalendars</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Index"><span class="e Identifier"><span class="i">cals</span></span>[<span class="e Identifier"><span class="i">i</span></span>]</span> = <span class="e Call"><span class="e Identifier"><span class="i">getCalendarInstance</span></span>(<span class="i">calID</span>)</span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">cals</span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR Culture_numberFormat)
   * $(I Property.) Retrieves a NumberFormat defining the culturally appropriate format for displaying numbers and currency.
   * Returns: A NumberFormat defining the culturally appropriate format for displaying numbers and currency.
  */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Identifier"><span class="i">NumberFormat</span></span> <span class="i">numberFormat</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkNeutral</span></span>(<span class="k">this</span>)</span>;</span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">numberFormat_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>) <span class="s Compound">{
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberFormat_</span></span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">NumberFormat</span></span>(<span class="e Identifier"><span class="i">cultureData_</span></span>)</span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">numberFormat_</span></span>.<span class="e Identifier"><span class="i">isReadOnly_</span></span></span> = <span class="e Identifier"><span class="i">isReadOnly_</span></span></span>;</span>
    }</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">numberFormat_</span></span>;</span>
  }</span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns a NumberFormat defining the culturally appropriate format for displaying numbers and currency.
   * Params: values = A NumberFormat defining the culturally appropriate format for displaying numbers and currency.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">numberFormat</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">NumberFormat</span></span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberFormat_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR Culture_dateTimeFormat)
   * $(I Property.) Retrieves a DateTimeFormat defining the culturally appropriate format for displaying dates and times.
   * Returns: A DateTimeFormat defining the culturally appropriate format for displaying dates and times.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Identifier"><span class="i">DateTimeFormat</span></span> <span class="i">dateTimeFormat</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkNeutral</span></span>(<span class="k">this</span>)</span>;</span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">dateTimeFormat_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>) <span class="s Compound">{
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">dateTimeFormat_</span></span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">DateTimeFormat</span></span>(<span class="e Identifier"><span class="i">cultureData_</span></span>, <span class="e Identifier"><span class="i">calendar</span></span>)</span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">dateTimeFormat_</span></span>.<span class="e Identifier"><span class="i">isReadOnly_</span></span></span> = <span class="e Identifier"><span class="i">isReadOnly_</span></span></span>;</span>
    }</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">dateTimeFormat_</span></span>;</span>
  }</span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns a DateTimeFormat defining the culturally appropriate format for displaying dates and times.
   * Params: values = A DateTimeFormat defining the culturally appropriate format for displaying dates and times.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">dateTimeFormat</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">DateTimeFormat</span></span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">dateTimeFormat_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">checkNeutral</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">culture</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">isNeutral</span></span></span>)
      <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">error</span></span>(<span class="sl">"Culture '"</span> ~ <span class="i">culture</span>.<span class="i">name</span> ~ <span class="sl">"' is a neutral culture. It cannot be used in formatting and therefore cannot be set as the current culture."</span>)</span>;</span></span>
  }</span></span></span></span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">checkReadOnly</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identifier"><span class="i">isReadOnly_</span></span>)
      <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">error</span></span>(<span class="sl">"Instance is read-only."</span>)</span>;</span></span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">Calendar</span></span> <span class="i">getCalendarInstance</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">calendarType</span></span>, <span class="o Parameter"><span class="t Integral"><span class="k">bool</span></span> <span class="i">readOnly</span>=<span class="e Bool"><span class="k">false</span></span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Switch"><span class="k">switch</span> (<span class="e Identifier"><span class="i">calendarType</span></span>) <span class="s Compound">{
      <span class="s Case"><span class="k">case</span> <span class="e Dot"><span class="e Identifier"><span class="i">Calendar</span></span>.<span class="e Identifier"><span class="i">JAPAN</span></span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Return"><span class="k">return</span> <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Japanese</span></span>()</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Dot"><span class="e Identifier"><span class="i">Calendar</span></span>.<span class="e Identifier"><span class="i">TAIWAN</span></span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Return"><span class="k">return</span> <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Taiwan</span></span>()</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Dot"><span class="e Identifier"><span class="i">Calendar</span></span>.<span class="e Identifier"><span class="i">KOREA</span></span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Return"><span class="k">return</span> <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Korean</span></span>()</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Dot"><span class="e Identifier"><span class="i">Calendar</span></span>.<span class="e Identifier"><span class="i">HIJRI</span></span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Return"><span class="k">return</span> <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Hijri</span></span>()</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Dot"><span class="e Identifier"><span class="i">Calendar</span></span>.<span class="e Identifier"><span class="i">THAI</span></span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Return"><span class="k">return</span> <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">ThaiBuddhist</span></span>()</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Dot"><span class="e Identifier"><span class="i">Calendar</span></span>.<span class="e Identifier"><span class="i">HEBREW</span></span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Return"><span class="k">return</span> <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Hebrew</span></span></span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Dot"><span class="e Identifier"><span class="i">Calendar</span></span>.<span class="e Identifier"><span class="i">GREGORIAN_US</span></span></span>:</span></span></span>
      <span class="s Scope"><span class="s Compound"><span class="s Case"><span class="k">case</span> <span class="e Dot"><span class="e Identifier"><span class="i">Calendar</span></span>.<span class="e Identifier"><span class="i">GREGORIAN_ME_FRENCH</span></span></span>:</span></span></span>
      <span class="s Scope"><span class="s Compound"><span class="s Case"><span class="k">case</span> <span class="e Dot"><span class="e Identifier"><span class="i">Calendar</span></span>.<span class="e Identifier"><span class="i">GREGORIAN_ARABIC</span></span></span>:</span></span></span>
      <span class="s Scope"><span class="s Compound"><span class="s Case"><span class="k">case</span> <span class="e Dot"><span class="e Identifier"><span class="i">Calendar</span></span>.<span class="e Identifier"><span class="i">GREGORIAN_XLIT_ENGLISH</span></span></span>:</span></span></span>
      <span class="s Scope"><span class="s Compound"><span class="s Case"><span class="k">case</span> <span class="e Dot"><span class="e Identifier"><span class="i">Calendar</span></span>.<span class="e Identifier"><span class="i">GREGORIAN_XLIT_FRENCH</span></span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Return"><span class="k">return</span> <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Gregorian</span></span>(<span class="e Cast"><span class="k">cast</span>(<span class="t Qualified"><span class="t Identifier"><span class="i">Gregorian</span></span>.<span class="t Identifier"><span class="i">Type</span></span></span>) <span class="e Identifier"><span class="i">calendarType</span></span></span>)</span>;</span></span></span></span>
      <span class="s Default"><span class="k">default</span>:
        <span class="s Scope"><span class="s Compound"><span class="s Break"><span class="k">break</span>;</span></span></span></span>
    }</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Gregorian</span></span>()</span>;</span>
  }</span></span></span></span></span>

}</span></span></span>

<span class="bc">/**
 * $(ANCHOR _Region)
 * Provides information about a region.
 * Remarks: Region does not represent user preferences. It does not depend on the user's language or culture.
 * Examples:
 * The following example displays some of the properties of the Region class:
 * ---
 * import tango.io.Print, tango.text.locale.Common;
 *
 * void main() {
 *   Region region = new Region("en-GB");
 *   Println("name:              %s", region.name);
 *   Println("englishName:       %s", region.englishName);
 *   Println("isMetric:          %s", region.isMetric);
 *   Println("currencySymbol:    %s", region.currencySymbol);
 *   Println("isoCurrencySymbol: %s", region.isoCurrencySymbol);
 * }
 *
 * // Produces the following output.
 * // name:              en-GB
 * // englishName:       United Kingdom
 * // isMetric:          true
 * // currencySymbol:    £
 * // isoCurrencySymbol: GBP
 * ---
 */</span>
<span class="d Protection"><span class="k">public</span> <span class="d Class"><span class="k">class</span> <span class="i">Region</span> <span class="d Compound">{

  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Identifier"><span class="i">CultureData</span></span><span class="t Pointer">*</span> <span class="i">cultureData_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Variables"><span class="t Identifier"><span class="i">Region</span></span> <span class="i">currentRegion_</span>;</span></span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">name_</span>;</span></span>

  <span class="bc">/**
   * Initializes a new Region instance based on the region associated with the specified culture identifier.
   * Params: cultureID = A culture indentifier.
   * Remarks: The name of the Region instance is set to the ISO 3166 two-letter code for that region.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Constructor"><span class="k">this</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">cultureID</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">cultureData_</span></span> = <span class="e Call"><span class="e Dot"><span class="e Identifier"><span class="i">CultureData</span></span>.<span class="e Identifier"><span class="i">getDataFromCultureID</span></span></span>(<span class="i">cultureID</span>)</span></span>;</span>
    <span class="s If"><span class="k">if</span> (<span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">isNeutral</span></span></span>)
        <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">error</span></span> (<span class="sl">"Cannot use a neutral culture to create a region."</span>)</span>;</span></span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">name_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">regionName</span></span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR Region_ctor_name)
   * Initializes a new Region instance based on the region specified by name.
   * Params: name = A two-letter ISO 3166 code for the region. Or, a culture $(LINK2 #Culture_name, _name) consisting of the language and region.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Constructor"><span class="k">this</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">name</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">cultureData_</span></span> = <span class="e Call"><span class="e Dot"><span class="e Identifier"><span class="i">CultureData</span></span>.<span class="e Identifier"><span class="i">getDataFromRegionName</span></span></span>(<span class="i">name</span>)</span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">name_</span></span> = <span class="e Identifier"><span class="i">name</span></span></span>;</span>
    <span class="s If"><span class="k">if</span> (<span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">isNeutral</span></span></span>)
        <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">error</span></span> (<span class="sl">"The region name "</span> ~ <span class="i">name</span> ~ <span class="sl">" corresponds to a neutral culture and cannot be used to create a region."</span>)</span>;</span></span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">package</span> <span class="d Constructor"><span class="k">this</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">CultureData</span></span><span class="t Pointer">*</span> <span class="i">cultureData</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">cultureData_</span></span> = <span class="e Identifier"><span class="i">cultureData</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">name_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">regionName</span></span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the Region used by the current $(LINK2 #Culture, Culture).
   * Returns: The Region instance associated with the current Culture.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">Region</span></span> <span class="i">current</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">currentRegion_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currentRegion_</span></span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Region</span></span>(<span class="e Dot"><span class="e Dot"><span class="e Identifier"><span class="i">Culture</span></span>.<span class="e Identifier"><span class="i">current</span></span></span>.<span class="e Identifier"><span class="i">cultureData_</span></span></span>)</span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">currentRegion_</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves a unique identifier for the geographical location of the region.
   * Returns: An $(B int) uniquely identifying the geographical location.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">int</span></span> <span class="i">geoID</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">geoId</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR Region_name)
   * $(I Property.) Retrieves the ISO 3166 code, or the name, of the current Region.
   * Returns: The value specified by the name parameter of the $(LINK2 #Region_ctor_name, Region(char[])) constructor.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">name</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">name_</span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the full name of the region in English.
   * Returns: The full name of the region in English.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">englishName</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">englishCountry</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the full name of the region in its native language.
   * Returns: The full name of the region in the language associated with the region code.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">nativeName</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">nativeCountry</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the two-letter ISO 3166 code of the region.
   * Returns: The two-letter ISO 3166 code of the region.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">twoLetterRegionName</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">regionName</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the three-letter ISO 3166 code of the region.
   * Returns: The three-letter ISO 3166 code of the region.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">threeLetterRegionName</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">isoRegionName</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the currency symbol of the region.
   * Returns: The currency symbol of the region.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">currencySymbol</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">currency</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the three-character currency symbol of the region.
   * Returns: The three-character currency symbol of the region.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">isoCurrencySymbol</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">intlSymbol</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the name in English of the currency used in the region.
   * Returns: The name in English of the currency used in the region.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">currencyEnglishName</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">englishCurrency</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the name in the native language of the region of the currency used in the region.
   * Returns: The name in the native language of the region of the currency used in the region.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">currencyNativeName</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">nativeCurrency</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves a value indicating whether the region uses the metric system for measurements.
   * Returns: true is the region uses the metric system; otherwise, false.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Integral"><span class="k">bool</span></span> <span class="i">isMetric</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">isMetric</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * Returns a string containing the ISO 3166 code, or the $(LINK2 #Region_name, name), of the current Region.
   * Returns: A string containing the ISO 3166 code, or the name, of the current Region.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">override</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">toString</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">name_</span></span>;</span>
  }</span></span></span></span></span>

}</span></span></span>

<span class="bc">/**
 * $(ANCHOR _NumberFormat)
 * Determines how numbers are formatted, according to the current culture.
 * Remarks: Numbers are formatted using format patterns retrieved from a NumberFormat instance.
 * This class implements $(LINK2 #IFormatService_getFormat, IFormatService.getFormat).
 * Examples:
 * The following example shows how to retrieve an instance of NumberFormat for a Culture
 * and use it to display number formatting information.
 * ---
 * import tango.io.Print, tango.text.locale.Common;
 *
 * void main(char[][] args) {
 *   foreach (c; Culture.getCultures(CultureTypes.Specific)) {
 *     if (c.twoLetterLanguageName == "en") {
 *       NumberFormat fmt = c.numberFormat;
 *       Println("The currency symbol for %s is '%s'", 
 *         c.englishName, 
 *         fmt.currencySymbol);
 *     }
 *   }
 * }
 *
 * // Produces the following output:
 * // The currency symbol for English (United States) is '$'
 * // The currency symbol for English (United Kingdom) is '£'
 * // The currency symbol for English (Australia) is '$'
 * // The currency symbol for English (Canada) is '$'
 * // The currency symbol for English (New Zealand) is '$'
 * // The currency symbol for English (Ireland) is '€'
 * // The currency symbol for English (South Africa) is 'R'
 * // The currency symbol for English (Jamaica) is 'J$'
 * // The currency symbol for English (Caribbean) is '$'
 * // The currency symbol for English (Belize) is 'BZ$'
 * // The currency symbol for English (Trinidad and Tobago) is 'TT$'
 * // The currency symbol for English (Zimbabwe) is 'Z$'
 * // The currency symbol for English (Republic of the Philippines) is 'Php'
 *---
 */</span>
<span class="d Protection"><span class="k">public</span> <span class="d Class"><span class="k">class</span> <span class="i">NumberFormat</span> : <span class="t BaseClass"><span class="t Identifier"><span class="i">IFormatService</span></span></span> <span class="d Compound">{

  <span class="d Protection"><span class="k">package</span> <span class="d Variables"><span class="t Integral"><span class="k">bool</span></span> <span class="i">isReadOnly_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Variables"><span class="t Identifier"><span class="i">NumberFormat</span></span> <span class="i">invariantFormat_</span>;</span></span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">int</span></span> <span class="i">numberDecimalDigits_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">int</span></span> <span class="i">numberNegativePattern_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">int</span></span> <span class="i">currencyDecimalDigits_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">int</span></span> <span class="i">currencyNegativePattern_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">int</span></span> <span class="i">currencyPositivePattern_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">int</span></span><span class="t Array">[]</span> <span class="i">numberGroupSizes_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">int</span></span><span class="t Array">[]</span> <span class="i">currencyGroupSizes_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">numberGroupSeparator_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">numberDecimalSeparator_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">currencyGroupSeparator_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">currencyDecimalSeparator_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">currencySymbol_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">negativeSign_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">positiveSign_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">nanSymbol_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">negativeInfinitySymbol_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">positiveInfinitySymbol_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">nativeDigits_</span>;</span></span>

  <span class="bc">/**
   * Initializes a new, culturally independent instance.
   *
   * Remarks: Modify the properties of the new instance to define custom formatting.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Constructor"><span class="k">this</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e This"><span class="k">this</span></span>(<span class="k">null</span>)</span>;</span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">package</span> <span class="d Constructor"><span class="k">this</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">CultureData</span></span><span class="t Pointer">*</span> <span class="i">cultureData</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="lc">// Initialize invariant data.</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberDecimalDigits_</span></span> = <span class="e Int"><span class="n">2</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberNegativePattern_</span></span> = <span class="e Int"><span class="n">1</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyDecimalDigits_</span></span> = <span class="e Int"><span class="n">2</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberGroupSizes_</span></span> = <span class="e Call"><span class="e TemplateInstance"><span class="i">arrayOf</span>!(<span class="o TemplateArguments"><span class="t Integral"><span class="k">int</span></span></span>)</span>(<span class="n">3</span>)</span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyGroupSizes_</span></span> = <span class="e Call"><span class="e TemplateInstance"><span class="i">arrayOf</span>!(<span class="o TemplateArguments"><span class="t Integral"><span class="k">int</span></span></span>)</span>(<span class="n">3</span>)</span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberGroupSeparator_</span></span> = <span class="e String"><span class="sl">","</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberDecimalSeparator_</span></span> = <span class="e String"><span class="sl">"."</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyGroupSeparator_</span></span> = <span class="e String"><span class="sl">","</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyDecimalSeparator_</span></span> = <span class="e String"><span class="sl">"."</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencySymbol_</span></span> = <span class="e String"><span class="sl">"\u00A4"</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">negativeSign_</span></span> = <span class="e String"><span class="sl">"-"</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">positiveSign_</span></span> = <span class="e String"><span class="sl">"+"</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">nanSymbol_</span></span> = <span class="e String"><span class="sl">"NaN"</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">negativeInfinitySymbol_</span></span> = <span class="e String"><span class="sl">"-Infinity"</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">positiveInfinitySymbol_</span></span> = <span class="e String"><span class="sl">"Infinity"</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">nativeDigits_</span></span> = <span class="e Call"><span class="e TemplateInstance"><span class="i">arrayOf</span>!(<span class="o TemplateArguments"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span></span>)</span>(<span class="sl">"0"</span>, <span class="sl">"1"</span>, <span class="sl">"2"</span>, <span class="sl">"3"</span>, <span class="sl">"4"</span>, <span class="sl">"5"</span>, <span class="sl">"6"</span>, <span class="sl">"7"</span>, <span class="sl">"8"</span>, <span class="sl">"9"</span>)</span></span>;</span>

    <span class="s If"><span class="k">if</span> (<span class="e AndAnd"><span class="e Identity"><span class="e Identifier"><span class="i">cultureData</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span> &amp;&amp; <span class="e Equal"><span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">lcid</span></span></span> != <span class="e Dot"><span class="e Identifier"><span class="i">Culture</span></span>.<span class="e Identifier"><span class="i">LCID_INVARIANT</span></span></span></span></span>) <span class="s Compound">{
      <span class="lc">// Initialize culture-specific data.</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberDecimalDigits_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">digits</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberNegativePattern_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">negativeNumber</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyDecimalDigits_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">currencyDigits</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyNegativePattern_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">negativeCurrency</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyPositivePattern_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">positiveCurrency</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberGroupSizes_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">grouping</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyGroupSizes_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">monetaryGrouping</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberGroupSeparator_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">thousand</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberDecimalSeparator_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">decimal</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyGroupSeparator_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">monetaryThousand</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyDecimalSeparator_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">monetaryDecimal</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencySymbol_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">currency</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">negativeSign_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">negativeSign</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">positiveSign_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">positiveSign</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">nanSymbol_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">nan</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">negativeInfinitySymbol_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">negInfinity</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">positiveInfinitySymbol_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">posInfinity</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">nativeDigits_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData</span></span>.<span class="e Identifier"><span class="i">nativeDigits</span></span></span></span>;</span>
    }</span></span>
  }</span></span></span></span>

  <span class="bc">/**
   * Retrieves an object defining how to format the specified type.
   * Params: type = The TypeInfo of the resulting formatting object.
   * Returns: If type is typeid($(LINK2 #NumberFormat, NumberFormat)), the current NumberFormat instance. Otherwise, null.
   * Remarks: Implements $(LINK2 #IFormatService_getFormat, IFormatService.getFormat).
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Identifier"><span class="i">Object</span></span> <span class="i">getFormat</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">TypeInfo</span></span> <span class="i">type</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Cond"><span class="e Paren">(<span class="e Identity"><span class="e Identifier"><span class="i">type</span></span> <span class="k">is</span> <span class="e Typeid"><span class="k">typeid</span>(<span class="t Identifier"><span class="i">NumberFormat</span></span>)</span></span>)</span> ? <span class="e This"><span class="k">this</span></span> : <span class="e Null"><span class="k">null</span></span></span>;</span>
  }</span></span></span></span>

<span class="d Version"><span class="k">version</span> (<span class="i">Clone</span>)
<span class="d Compound">{
  <span class="bc">/**
   * Creates a copy of the instance.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Identifier"><span class="i">Object</span></span> <span class="i">clone</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">NumberFormat</span></span> <span class="i">copy</span> = <span class="e Call"><span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">NumberFormat</span></span>)<span class="e Identifier"><span class="i">cloneObject</span></span></span>(<span class="k">this</span>)</span>;</span></span>
    <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">copy</span></span>.<span class="e Identifier"><span class="i">isReadOnly_</span></span></span> = <span class="e Bool"><span class="k">false</span></span></span>;</span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">copy</span></span>;</span>
  }</span></span></span></span>
}</span></span>

  <span class="bc">/**
   * Retrieves the NumberFormat for the specified $(LINK2 #IFormatService, IFormatService).
   * Params: formatService = The IFormatService used to retrieve NumberFormat.
   * Returns: The NumberFormat for the specified IFormatService.
   * Remarks: The method calls $(LINK2 #IFormatService_getFormat, IFormatService.getFormat) with typeof(NumberFormat). If formatService is null,
   * then the value of the current property is returned.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">NumberFormat</span></span> <span class="i">getInstance</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">IFormatService</span></span> <span class="i">formatService</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">culture</span> = <span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">Culture</span></span>)<span class="e Identifier"><span class="i">formatService</span></span></span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">culture</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>) <span class="s Compound">{
      <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">numberFormat_</span></span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
        <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">numberFormat_</span></span></span>;</span></span>
      <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">numberFormat</span></span></span>;</span>
    }</span></span>
    <span class="s If"><span class="k">if</span> (<span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">NumberFormat</span></span> <span class="i">numberFormat</span> = <span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">NumberFormat</span></span>)<span class="e Identifier"><span class="i">formatService</span></span></span></span></span>)
      <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">numberFormat</span></span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">formatService</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>) <span class="s Compound">{
      <span class="s If"><span class="k">if</span> (<span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">NumberFormat</span></span> <span class="i">numberFormat</span> = <span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">NumberFormat</span></span>)<span class="e Paren">(<span class="e Call"><span class="e Dot"><span class="e Identifier"><span class="i">formatService</span></span>.<span class="e Identifier"><span class="i">getFormat</span></span></span>(<span class="k">typeid</span>(<span class="i">NumberFormat</span>))</span>)</span></span></span></span>)
        <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">numberFormat</span></span>;</span></span>
    }</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">current</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves a read-only NumberFormat instance from the current culture.
   * Returns: A read-only NumberFormat instance from the current culture.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">NumberFormat</span></span> <span class="i">current</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Dot"><span class="e Identifier"><span class="i">Culture</span></span>.<span class="e Identifier"><span class="i">current</span></span></span>.<span class="e Identifier"><span class="i">numberFormat</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR NumberFormat_invariantFormat)
   * $(I Property.) Retrieves the read-only, culturally independent NumberFormat instance.
   * Returns: The read-only, culturally independent NumberFormat instance.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">NumberFormat</span></span> <span class="i">invariantFormat</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">invariantFormat_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>) <span class="s Compound">{
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">invariantFormat_</span></span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">NumberFormat</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">invariantFormat_</span></span>.<span class="e Identifier"><span class="i">isReadOnly_</span></span></span> = <span class="e Bool"><span class="k">true</span></span></span>;</span>
    }</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">invariantFormat_</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves a value indicating whether the instance is read-only.
   * Returns: true if the instance is read-only; otherwise, false.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">bool</span></span> <span class="i">isReadOnly</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">isReadOnly_</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the number of decimal places used for numbers.
   * Returns: The number of decimal places used for numbers. For $(LINK2 #NumberFormat_invariantFormat, invariantFormat), the default is 2.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">int</span></span> <span class="i">numberDecimalDigits</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">numberDecimalDigits_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * Assigns the number of decimal digits used for numbers.
   * Params: value = The number of decimal places used for numbers.
   * Throws: Exception if the property is being set and the instance is read-only.
   * Examples:
   * The following example shows the effect of changing numberDecimalDigits.
   * ---
   * import tango.io.Print, tango.text.locale.Common;
   *
   * void main() {
   *   // Get the NumberFormat from the en-GB culture.
   *   NumberFormat fmt = (new Culture("en-GB")).numberFormat;
   *
   *   // Display a value with the default number of decimal digits.
   *   int n = 5678;
   *   Println(Formatter.format(fmt, "{0:N}", n));
   *
   *   // Display the value with six decimal digits.
   *   fmt.numberDecimalDigits = 6;
   *   Println(Formatter.format(fmt, "{0:N}", n));
   * }
   *
   * // Produces the following output:
   * // 5,678.00
   * // 5,678.000000
   * ---
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">numberDecimalDigits</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberDecimalDigits_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the format pattern for negative numbers.
   * Returns: The format pattern for negative numbers. For invariantFormat, the default is 1 (representing "-n").
   * Remarks: The following table shows valid values for this property.
   *
   * &lt;table class="definitionTable"&gt;
   * &lt;tr&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Pattern&lt;/th&gt;&lt;/tr&gt;
   * &lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;(n)&lt;/td&gt;&lt;/tr&gt;
   * &lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;-n&lt;/td&gt;&lt;/tr&gt;
   * &lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;- n&lt;/td&gt;&lt;/tr&gt;
   * &lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;n-&lt;/td&gt;&lt;/tr&gt;
   * &lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;n -&lt;/td&gt;&lt;/tr&gt;
   * &lt;/table&gt;
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">int</span></span> <span class="i">numberNegativePattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">numberNegativePattern_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the format pattern for negative numbers.
   * Params: value = The format pattern for negative numbers.
   * Examples:
   * The following example shows the effect of the different patterns.
   * ---
   * import tango.io.Print, tango.text.locale.Common;
   *
   * void main() {
   *   NumberFormat fmt = new NumberFormat;
   *   int n = -5678;
   *
   *   // Display the default pattern.
   *   Println(Formatter.format(fmt, "{0:N}", n));
   *
   *   // Display all patterns.
   *   for (int i = 0; i &lt;= 4; i++) {
   *     fmt.numberNegativePattern = i;
   *     Println(Formatter.format(fmt, "{0:N}", n));
   *   }
   * }
   *
   * // Produces the following output:
   * // (5,678.00)
   * // (5,678.00)
   * // -5,678.00
   * // - 5,678.00
   * // 5,678.00-
   * // 5,678.00 -
   * ---
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">numberNegativePattern</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberNegativePattern_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the number of decimal places to use in currency values.
   * Returns: The number of decimal digits to use in currency values.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">int</span></span> <span class="i">currencyDecimalDigits</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">currencyDecimalDigits_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the number of decimal places to use in currency values.
   * Params: value = The number of decimal digits to use in currency values.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">currencyDecimalDigits</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyDecimalDigits_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the formal pattern to use for negative currency values.
   * Returns: The format pattern to use for negative currency values.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">int</span></span> <span class="i">currencyNegativePattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">currencyNegativePattern_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the formal pattern to use for negative currency values.
   * Params: value = The format pattern to use for negative currency values.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">currencyNegativePattern</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyNegativePattern_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the formal pattern to use for positive currency values.
   * Returns: The format pattern to use for positive currency values.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">int</span></span> <span class="i">currencyPositivePattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">currencyPositivePattern_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the formal pattern to use for positive currency values.
   * Returns: The format pattern to use for positive currency values.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">currencyPositivePattern</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyPositivePattern_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the number of digits int each group to the left of the decimal place in numbers.
   * Returns: The number of digits int each group to the left of the decimal place in numbers.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">int</span></span><span class="t Array">[]</span> <span class="i">numberGroupSizes</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">numberGroupSizes_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the number of digits int each group to the left of the decimal place in numbers.
   * Params: value = The number of digits int each group to the left of the decimal place in numbers.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">numberGroupSizes</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberGroupSizes_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the number of digits int each group to the left of the decimal place in currency values.
   * Returns: The number of digits int each group to the left of the decimal place in currency values.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">int</span></span><span class="t Array">[]</span> <span class="i">currencyGroupSizes</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">currencyGroupSizes_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the number of digits int each group to the left of the decimal place in currency values.
   * Params: value = The number of digits int each group to the left of the decimal place in currency values.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">currencyGroupSizes</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyGroupSizes_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the string separating groups of digits to the left of the decimal place in numbers.
   * Returns: The string separating groups of digits to the left of the decimal place in numbers. For example, ",".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">numberGroupSeparator</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">numberGroupSeparator_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string separating groups of digits to the left of the decimal place in numbers.
   * Params: value = The string separating groups of digits to the left of the decimal place in numbers.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">numberGroupSeparator</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberGroupSeparator_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the string used as the decimal separator in numbers.
   * Returns: The string used as the decimal separator in numbers. For example, ".".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">numberDecimalSeparator</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">numberDecimalSeparator_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string used as the decimal separator in numbers.
   * Params: value = The string used as the decimal separator in numbers.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">numberDecimalSeparator</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">numberDecimalSeparator_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the string separating groups of digits to the left of the decimal place in currency values.
   * Returns: The string separating groups of digits to the left of the decimal place in currency values. For example, ",".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">currencyGroupSeparator</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">currencyGroupSeparator_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string separating groups of digits to the left of the decimal place in currency values.
   * Params: value = The string separating groups of digits to the left of the decimal place in currency values.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">currencyGroupSeparator</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyGroupSeparator_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the string used as the decimal separator in currency values.
   * Returns: The string used as the decimal separator in currency values. For example, ".".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">currencyDecimalSeparator</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">currencyDecimalSeparator_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string used as the decimal separator in currency values.
   * Params: value = The string used as the decimal separator in currency values.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">currencyDecimalSeparator</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencyDecimalSeparator_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the string used as the currency symbol.
   * Returns: The string used as the currency symbol. For example, "£".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">currencySymbol</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">currencySymbol_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string used as the currency symbol.
   * Params: value = The string used as the currency symbol.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">currencySymbol</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">currencySymbol_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the string denoting that a number is negative.
   * Returns: The string denoting that a number is negative. For example, "-".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">negativeSign</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">negativeSign_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string denoting that a number is negative.
   * Params: value = The string denoting that a number is negative.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">negativeSign</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">negativeSign_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the string denoting that a number is positive.
   * Returns: The string denoting that a number is positive. For example, "+".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">positiveSign</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">positiveSign_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string denoting that a number is positive.
   * Params: value = The string denoting that a number is positive.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">positiveSign</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">positiveSign_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the string representing the NaN (not a number) value.
   * Returns: The string representing the NaN value. For example, "NaN".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">nanSymbol</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">nanSymbol_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string representing the NaN (not a number) value.
   * Params: value = The string representing the NaN value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">nanSymbol</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">nanSymbol_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the string representing negative infinity.
   * Returns: The string representing negative infinity. For example, "-Infinity".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">negativeInfinitySymbol</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">negativeInfinitySymbol_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string representing negative infinity.
   * Params: value = The string representing negative infinity.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">negativeInfinitySymbol</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">negativeInfinitySymbol_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the string representing positive infinity.
   * Returns: The string representing positive infinity. For example, "Infinity".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">positiveInfinitySymbol</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">positiveInfinitySymbol_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string representing positive infinity.
   * Params: value = The string representing positive infinity.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">positiveInfinitySymbol</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">positiveInfinitySymbol_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves a string array of native equivalents of the digits 0 to 9.
   * Returns: A string array of native equivalents of the digits 0 to 9.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">nativeDigits</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">nativeDigits_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns a string array of native equivalents of the digits 0 to 9.
   * Params: value = A string array of native equivalents of the digits 0 to 9.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">nativeDigits</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">nativeDigits_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">checkReadOnly</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identifier"><span class="i">isReadOnly_</span></span>)
        <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">error</span></span>(<span class="sl">"NumberFormat instance is read-only."</span>)</span>;</span></span>
  }</span></span></span></span>

}</span></span></span>

<span class="bc">/**
 * $(ANCHOR _DateTimeFormat)
 * Determines how $(LINK2 #Time, Time) values are formatted, depending on the culture.
 * Remarks: To create a DateTimeFormat for a specific culture, create a $(LINK2 #Culture, Culture) for that culture and
 * retrieve its $(LINK2 #Culture_dateTimeFormat, dateTimeFormat) property. To create a DateTimeFormat for the user's current 
 * culture, use the $(LINK2 #Culture_current, current) property.
 */</span>
<span class="d Protection"><span class="k">public</span> <span class="d Class"><span class="k">class</span> <span class="i">DateTimeFormat</span> : <span class="t BaseClass"><span class="t Identifier"><span class="i">IFormatService</span></span></span> <span class="d Compound">{

  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">const</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">rfc1123Pattern_</span> = <span class="e String"><span class="sl">"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'"</span></span>;</span></span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">const</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">sortableDateTimePattern_</span> = <span class="e String"><span class="sl">"yyyy'-'MM'-'dd'T'HH':'mm':'ss"</span></span>;</span></span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">const</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">universalSortableDateTimePattern_</span> = <span class="e String"><span class="sl">"yyyy'-'MM'-'dd' 'HH':'mm':'ss'Z'"</span></span>;</span></span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">const</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">allStandardFormats</span> = <span class="e ArrayInit">[ <span class="e Char"><span class="cl">'d'</span></span>, <span class="e Char"><span class="cl">'D'</span></span>, <span class="e Char"><span class="cl">'f'</span></span>, <span class="e Char"><span class="cl">'F'</span></span>, <span class="e Char"><span class="cl">'g'</span></span>, <span class="e Char"><span class="cl">'G'</span></span>, <span class="e Char"><span class="cl">'m'</span></span>, <span class="e Char"><span class="cl">'M'</span></span>, <span class="e Char"><span class="cl">'r'</span></span>, <span class="e Char"><span class="cl">'R'</span></span>, <span class="e Char"><span class="cl">'s'</span></span>, <span class="e Char"><span class="cl">'t'</span></span>, <span class="e Char"><span class="cl">'T'</span></span>, <span class="e Char"><span class="cl">'u'</span></span>, <span class="e Char"><span class="cl">'U'</span></span>, <span class="e Char"><span class="cl">'y'</span></span>, <span class="e Char"><span class="cl">'Y'</span></span> ]</span>;</span></span></span>


  <span class="d Protection"><span class="k">package</span> <span class="d Variables"><span class="t Integral"><span class="k">bool</span></span> <span class="i">isReadOnly_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Variables"><span class="t Identifier"><span class="i">DateTimeFormat</span></span> <span class="i">invariantFormat_</span>;</span></span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Identifier"><span class="i">CultureData</span></span><span class="t Pointer">*</span> <span class="i">cultureData_</span>;</span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Identifier"><span class="i">Calendar</span></span> <span class="i">calendar_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">int</span></span><span class="t Array">[]</span> <span class="i">optionalCalendars_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">int</span></span> <span class="i">firstDayOfWeek_</span> = <span class="e Sign">-<span class="e Int"><span class="n">1</span></span></span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">int</span></span> <span class="i">calendarWeekRule_</span> = <span class="e Sign">-<span class="e Int"><span class="n">1</span></span></span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">dateSeparator_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">timeSeparator_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">amDesignator_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">pmDesignator_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">shortDatePattern_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">shortTimePattern_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">longDatePattern_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">longTimePattern_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">monthDayPattern_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">yearMonthPattern_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">abbreviatedDayNames_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">dayNames_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">abbreviatedMonthNames_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">monthNames_</span>;</span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">fullDateTimePattern_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">generalShortTimePattern_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">generalLongTimePattern_</span>;</span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">shortTimePatterns_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">shortDatePatterns_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">longTimePatterns_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">longDatePatterns_</span>;</span></span>
  <span class="d Protection"><span class="k">private</span> <span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">yearMonthPatterns_</span>;</span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_ctor)
   * Initializes an instance that is writable and culture-independent.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Constructor"><span class="k">this</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="lc">// This ctor is used by invariantFormat so we can't set the calendar property.</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">cultureData_</span></span> = <span class="e Dot"><span class="e Dot"><span class="e Identifier"><span class="i">Culture</span></span>.<span class="e Identifier"><span class="i">invariantCulture</span></span></span>.<span class="e Identifier"><span class="i">cultureData_</span></span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">calendar_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">Gregorian</span></span>.<span class="e Identifier"><span class="i">generic</span></span></span></span>;</span>
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">initialize</span></span>()</span>;</span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">package</span> <span class="d Constructor"><span class="k">this</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">CultureData</span></span><span class="t Pointer">*</span> <span class="i">cultureData</span></span>, <span class="o Parameter"><span class="t Identifier"><span class="i">Calendar</span></span> <span class="i">calendar</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">cultureData_</span></span> = <span class="e Identifier"><span class="i">cultureData</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e This"><span class="k">this</span></span>.<span class="e Identifier"><span class="i">calendar</span></span></span> = <span class="e Identifier"><span class="i">calendar</span></span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_getFormat)
   * Retrieves an object defining how to format the specified type.
   * Params: type = The TypeInfo of the resulting formatting object.
   * Returns: If type is typeid(DateTimeFormat), the current DateTimeFormat instance. Otherwise, null.
   * Remarks: Implements $(LINK2 #IFormatService_getFormat, IFormatService.getFormat).
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Identifier"><span class="i">Object</span></span> <span class="i">getFormat</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">TypeInfo</span></span> <span class="i">type</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Cond"><span class="e Paren">(<span class="e Identity"><span class="e Identifier"><span class="i">type</span></span> <span class="k">is</span> <span class="e Typeid"><span class="k">typeid</span>(<span class="t Identifier"><span class="i">DateTimeFormat</span></span>)</span></span>)</span> ? <span class="e This"><span class="k">this</span></span> : <span class="e Null"><span class="k">null</span></span></span>;</span>
  }</span></span></span></span>

<span class="d Version"><span class="k">version</span>(<span class="i">Clone</span>)
<span class="d Compound">{
  <span class="bc">/**
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d Function"><span class="t Identifier"><span class="i">Object</span></span> <span class="i">clone</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">DateTimeFormat</span></span> <span class="i">other</span> = <span class="e Call"><span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">DateTimeFormat</span></span>)<span class="e Identifier"><span class="i">cloneObject</span></span></span>(<span class="k">this</span>)</span>;</span></span>
    <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">other</span></span>.<span class="e Identifier"><span class="i">calendar_</span></span></span> = <span class="e Call"><span class="e Dot"><span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">Calendar</span></span>)<span class="e Identifier"><span class="i">calendar</span></span></span>.<span class="e Identifier"><span class="i">clone</span></span></span>()</span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">other</span></span>.<span class="e Identifier"><span class="i">isReadOnly_</span></span></span> = <span class="e Bool"><span class="k">false</span></span></span>;</span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">other</span></span>;</span>
  }</span></span></span></span>
}</span></span>

  <span class="d Protection"><span class="k">package</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">shortTimePatterns</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">shortTimePatterns_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">shortTimePatterns_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">shortTimes</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">shortTimePatterns_</span></span>.<span class="e Identifier"><span class="i">dup</span></span></span>;</span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">package</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">shortDatePatterns</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">shortDatePatterns_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">shortDatePatterns_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">shortDates</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">shortDatePatterns_</span></span>.<span class="e Identifier"><span class="i">dup</span></span></span>;</span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">package</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">longTimePatterns</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">longTimePatterns_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">longTimePatterns_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">longTimes</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">longTimePatterns_</span></span>.<span class="e Identifier"><span class="i">dup</span></span></span>;</span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">package</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">longDatePatterns</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">longDatePatterns_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">longDatePatterns_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">longDates</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">longDatePatterns_</span></span>.<span class="e Identifier"><span class="i">dup</span></span></span>;</span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">package</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">yearMonthPatterns</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">yearMonthPatterns_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">yearMonthPatterns_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">yearMonths</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">yearMonthPatterns_</span></span>;</span>
  }</span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_getAllDateTimePatterns)
   * Retrieves the standard patterns in which Time values can be formatted.
   * Returns: An array of strings containing the standard patterns in which Time values can be formatted.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">getAllDateTimePatterns</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Declaration"><span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">result</span>;</span></span>
    <span class="s Foreach"><span class="k">foreach</span> (<span class="o Parameters"><span class="o Parameter"><span class="t Integral"><span class="k">char</span></span> <span class="i">format</span></span></span>; <span class="e Dot"><span class="e Identifier"><span class="i">DateTimeFormat</span></span>.<span class="e Identifier"><span class="i">allStandardFormats</span></span></span>)
      <span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Call"><span class="e Identifier"><span class="i">getAllDateTimePatterns</span></span>(<span class="i">format</span>)</span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">result</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_getAllDateTimePatterns_char)
   * Retrieves the standard patterns in which Time values can be formatted using the specified format character.
   * Returns: An array of strings containing the standard patterns in which Time values can be formatted using the specified format character.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">getAllDateTimePatterns</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span> <span class="i">format</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{

    <span class="s Declaration"><span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">combinePatterns</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">patterns1</span></span>, <span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">patterns2</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
      <span class="s Declaration"><span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">result</span> = <span class="e New"><span class="k">new</span> <span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[<span class="e Mul"><span class="e Dot"><span class="e Identifier"><span class="i">patterns1</span></span>.<span class="e Identifier"><span class="i">length</span></span></span> * <span class="e Dot"><span class="e Identifier"><span class="i">patterns2</span></span>.<span class="e Identifier"><span class="i">length</span></span></span></span>]</span></span>;</span></span>
      <span class="s For"><span class="k">for</span> (<span class="s Declaration"><span class="d Variables"><span class="t Integral"><span class="k">int</span></span> <span class="i">i</span> = <span class="e Int"><span class="n">0</span></span>;</span></span> <span class="e Rel"><span class="e Identifier"><span class="i">i</span></span> &lt; <span class="e Dot"><span class="e Identifier"><span class="i">patterns1</span></span>.<span class="e Identifier"><span class="i">length</span></span></span></span>; <span class="e PostIncr"><span class="e Identifier"><span class="i">i</span></span>++</span>) <span class="s Compound">{
        <span class="s For"><span class="k">for</span> (<span class="s Declaration"><span class="d Variables"><span class="t Integral"><span class="k">int</span></span> <span class="i">j</span> = <span class="e Int"><span class="n">0</span></span>;</span></span> <span class="e Rel"><span class="e Identifier"><span class="i">j</span></span> &lt; <span class="e Dot"><span class="e Identifier"><span class="i">patterns2</span></span>.<span class="e Identifier"><span class="i">length</span></span></span></span>; <span class="e PostIncr"><span class="e Identifier"><span class="i">j</span></span>++</span>)
          <span class="s Expression"><span class="e Assign"><span class="e Index"><span class="e Identifier"><span class="i">result</span></span>[<span class="e Plus"><span class="e Mul"><span class="e Identifier"><span class="i">i</span></span> * <span class="e Dot"><span class="e Identifier"><span class="i">patterns2</span></span>.<span class="e Identifier"><span class="i">length</span></span></span></span> + <span class="e Identifier"><span class="i">j</span></span></span>]</span> = <span class="e Cat"><span class="e Cat"><span class="e Index"><span class="e Identifier"><span class="i">patterns1</span></span>[<span class="e Identifier"><span class="i">i</span></span>]</span> ~ <span class="e String"><span class="sl">" "</span></span></span> ~ <span class="e Index"><span class="e Identifier"><span class="i">patterns2</span></span>[<span class="e Identifier"><span class="i">j</span></span>]</span></span></span>;</span></span>
      }</span></span>
      <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">result</span></span>;</span>
    }</span></span></span></span>

    <span class="lc">// format must be one of allStandardFormats.</span>
    <span class="s Declaration"><span class="d Variables"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">result</span>;</span></span>
    <span class="s Switch"><span class="k">switch</span> (<span class="e Identifier"><span class="i">format</span></span>) <span class="s Compound">{
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'d'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Identifier"><span class="i">shortDatePatterns</span></span></span>;</span>
        <span class="s Break"><span class="k">break</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'D'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Identifier"><span class="i">longDatePatterns</span></span></span>;</span>
        <span class="s Break"><span class="k">break</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'f'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Call"><span class="e Identifier"><span class="i">combinePatterns</span></span>(<span class="i">longDatePatterns</span>, <span class="i">shortTimePatterns</span>)</span></span>;</span>
        <span class="s Break"><span class="k">break</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'F'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Call"><span class="e Identifier"><span class="i">combinePatterns</span></span>(<span class="i">longDatePatterns</span>, <span class="i">longTimePatterns</span>)</span></span>;</span>
        <span class="s Break"><span class="k">break</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'g'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Call"><span class="e Identifier"><span class="i">combinePatterns</span></span>(<span class="i">shortDatePatterns</span>, <span class="i">shortTimePatterns</span>)</span></span>;</span>
        <span class="s Break"><span class="k">break</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'G'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Call"><span class="e Identifier"><span class="i">combinePatterns</span></span>(<span class="i">shortDatePatterns</span>, <span class="i">longTimePatterns</span>)</span></span>;</span>
        <span class="s Break"><span class="k">break</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'m'</span></span>:</span></span></span>
      <span class="s Scope"><span class="s Compound"><span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'M'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Identifier"><span class="i">monthDayPattern</span></span></span>;</span>
        <span class="s Break"><span class="k">break</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'r'</span></span>:</span></span></span>
      <span class="s Scope"><span class="s Compound"><span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'R'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Identifier"><span class="i">rfc1123Pattern_</span></span></span>;</span>
        <span class="s Break"><span class="k">break</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'s'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Identifier"><span class="i">sortableDateTimePattern_</span></span></span>;</span>
        <span class="s Break"><span class="k">break</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'t'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Identifier"><span class="i">shortTimePatterns</span></span></span>;</span>
        <span class="s Break"><span class="k">break</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'T'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Identifier"><span class="i">longTimePatterns</span></span></span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'u'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Identifier"><span class="i">universalSortableDateTimePattern_</span></span></span>;</span>
        <span class="s Break"><span class="k">break</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'U'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Call"><span class="e Identifier"><span class="i">combinePatterns</span></span>(<span class="i">longDatePatterns</span>, <span class="i">longTimePatterns</span>)</span></span>;</span>
        <span class="s Break"><span class="k">break</span>;</span></span></span></span>
      <span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'y'</span></span>:</span></span></span>
      <span class="s Scope"><span class="s Compound"><span class="s Case"><span class="k">case</span> <span class="e Char"><span class="cl">'Y'</span></span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e CatAssign"><span class="e Identifier"><span class="i">result</span></span> ~= <span class="e Identifier"><span class="i">yearMonthPatterns</span></span></span>;</span>
        <span class="s Break"><span class="k">break</span>;</span></span></span></span>
      <span class="s Default"><span class="k">default</span>:
        <span class="s Scope"><span class="s Compound"><span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">error</span></span>(<span class="sl">"The specified format was not valid."</span>)</span>;</span></span></span></span>
    }</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">result</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_getAbbreviatedDayName)
   * Retrieves the abbreviated name of the specified day of the week based on the culture of the instance.
   * Params: dayOfWeek = A DayOfWeek value.
   * Returns: The abbreviated name of the day of the week represented by dayOfWeek.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">getAbbreviatedDayName</span><span class="o Parameters">(<span class="o Parameter"><span class="t Qualified"><span class="t Identifier"><span class="i">Calendar</span></span>.<span class="t Identifier"><span class="i">DayOfWeek</span></span></span> <span class="i">dayOfWeek</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Index"><span class="e Identifier"><span class="i">abbreviatedDayNames</span></span>[<span class="e Cast"><span class="k">cast</span>(<span class="t Integral"><span class="k">int</span></span>)<span class="e Identifier"><span class="i">dayOfWeek</span></span></span>]</span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_getDayName)
   * Retrieves the full name of the specified day of the week based on the culture of the instance.
   * Params: dayOfWeek = A DayOfWeek value.
   * Returns: The full name of the day of the week represented by dayOfWeek.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">getDayName</span><span class="o Parameters">(<span class="o Parameter"><span class="t Qualified"><span class="t Identifier"><span class="i">Calendar</span></span>.<span class="t Identifier"><span class="i">DayOfWeek</span></span></span> <span class="i">dayOfWeek</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Index"><span class="e Identifier"><span class="i">dayNames</span></span>[<span class="e Cast"><span class="k">cast</span>(<span class="t Integral"><span class="k">int</span></span>)<span class="e Identifier"><span class="i">dayOfWeek</span></span></span>]</span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_getAbbreviatedMonthName)
   * Retrieves the abbreviated name of the specified month based on the culture of the instance.
   * Params: month = An integer between 1 and 13 indicating the name of the _month to return.
   * Returns: The abbreviated name of the _month represented by month.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">getAbbreviatedMonthName</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">month</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Index"><span class="e Identifier"><span class="i">abbreviatedMonthNames</span></span>[<span class="e Minus"><span class="e Identifier"><span class="i">month</span></span> - <span class="e Int"><span class="n">1</span></span></span>]</span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_getMonthName)
   * Retrieves the full name of the specified month based on the culture of the instance.
   * Params: month = An integer between 1 and 13 indicating the name of the _month to return.
   * Returns: The full name of the _month represented by month.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">getMonthName</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">int</span></span> <span class="i">month</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Index"><span class="e Identifier"><span class="i">monthNames</span></span>[<span class="e Minus"><span class="e Identifier"><span class="i">month</span></span> - <span class="e Int"><span class="n">1</span></span></span>]</span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_getInstance)
   * Retrieves the DateTimeFormat for the specified IFormatService.
   * Params: formatService = The IFormatService used to retrieve DateTimeFormat.
   * Returns: The DateTimeFormat for the specified IFormatService.
   * Remarks: The method calls $(LINK2 #IFormatService_getFormat, IFormatService.getFormat) with typeof(DateTimeFormat). If formatService is null,
   * then the value of the current property is returned.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">DateTimeFormat</span></span> <span class="i">getInstance</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">IFormatService</span></span> <span class="i">formatService</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">Culture</span></span> <span class="i">culture</span> = <span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">Culture</span></span>)<span class="e Identifier"><span class="i">formatService</span></span></span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">culture</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>) <span class="s Compound">{
      <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">dateTimeFormat_</span></span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
        <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">dateTimeFormat_</span></span></span>;</span></span>
      <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">culture</span></span>.<span class="e Identifier"><span class="i">dateTimeFormat</span></span></span>;</span>
    }</span></span>
    <span class="s If"><span class="k">if</span> (<span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">DateTimeFormat</span></span> <span class="i">dateTimeFormat</span> = <span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">DateTimeFormat</span></span>)<span class="e Identifier"><span class="i">formatService</span></span></span></span></span>)
      <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">dateTimeFormat</span></span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">formatService</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>) <span class="s Compound">{
      <span class="s If"><span class="k">if</span> (<span class="s Declaration"><span class="d Variables"><span class="t Identifier"><span class="i">DateTimeFormat</span></span> <span class="i">dateTimeFormat</span> = <span class="e Cast"><span class="k">cast</span>(<span class="t Identifier"><span class="i">DateTimeFormat</span></span>)<span class="e Paren">(<span class="e Call"><span class="e Dot"><span class="e Identifier"><span class="i">formatService</span></span>.<span class="e Identifier"><span class="i">getFormat</span></span></span>(<span class="k">typeid</span>(<span class="i">DateTimeFormat</span>))</span>)</span></span></span></span>)
        <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">dateTimeFormat</span></span>;</span></span>
    }</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">current</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_current)
   * $(I Property.) Retrieves a read-only DateTimeFormat instance from the current culture.
   * Returns: A read-only DateTimeFormat instance from the current culture.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">DateTimeFormat</span></span> <span class="i">current</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Dot"><span class="e Identifier"><span class="i">Culture</span></span>.<span class="e Identifier"><span class="i">current</span></span></span>.<span class="e Identifier"><span class="i">dateTimeFormat</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_invariantFormat)
   * $(I Property.) Retrieves a read-only DateTimeFormat instance that is culturally independent.
   * Returns: A read-only DateTimeFormat instance that is culturally independent.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">static</span> <span class="d Function"><span class="t Identifier"><span class="i">DateTimeFormat</span></span> <span class="i">invariantFormat</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">invariantFormat_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>) <span class="s Compound">{
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">invariantFormat_</span></span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">DateTimeFormat</span></span></span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">invariantFormat_</span></span>.<span class="e Identifier"><span class="i">calendar</span></span></span> = <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">Gregorian</span></span>()</span></span>;</span>
      <span class="s Expression"><span class="e Assign"><span class="e Dot"><span class="e Identifier"><span class="i">invariantFormat_</span></span>.<span class="e Identifier"><span class="i">isReadOnly_</span></span></span> = <span class="e Bool"><span class="k">true</span></span></span>;</span>
    }</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">invariantFormat_</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_isReadOnly)
   * $(I Property.) Retrieves a value indicating whether the instance is read-only.
   * Returns: true is the instance is read-only; otherwise, false.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">bool</span></span> <span class="i">isReadOnly</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">isReadOnly_</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(I Property.) Retrieves the calendar used by the current culture.
   * Returns: The Calendar determining the calendar used by the current culture. For example, the Gregorian.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Identifier"><span class="i">Calendar</span></span> <span class="i">calendar</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assert"><span class="k">assert</span>(<span class="e Identity"><span class="e Identifier"><span class="i">calendar_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)</span>;</span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">calendar_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_calendar)
   * $(I Property.) Assigns the calendar to be used by the current culture.
   * Params: value = The Calendar determining the calendar to be used by the current culture.
   * Exceptions: If value is not valid for the current culture, an Exception is thrown.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">calendar</span><span class="o Parameters">(<span class="o Parameter"><span class="t Identifier"><span class="i">Calendar</span></span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">value</span></span> !<span class="k">is</span> <span class="e Identifier"><span class="i">calendar_</span></span></span>) <span class="s Compound">{
      <span class="s For"><span class="k">for</span> (<span class="s Declaration"><span class="d Variables"><span class="t Integral"><span class="k">int</span></span> <span class="i">i</span> = <span class="e Int"><span class="n">0</span></span>;</span></span> <span class="e Rel"><span class="e Identifier"><span class="i">i</span></span> &lt; <span class="e Dot"><span class="e Identifier"><span class="i">optionalCalendars</span></span>.<span class="e Identifier"><span class="i">length</span></span></span></span>; <span class="e PostIncr"><span class="e Identifier"><span class="i">i</span></span>++</span>) <span class="s Compound">{
        <span class="s If"><span class="k">if</span> (<span class="e Equal"><span class="e Index"><span class="e Identifier"><span class="i">optionalCalendars</span></span>[<span class="e Identifier"><span class="i">i</span></span>]</span> == <span class="e Dot"><span class="e Identifier"><span class="i">value</span></span>.<span class="e Identifier"><span class="i">id</span></span></span></span>) <span class="s Compound">{
          <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">calendar_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>) <span class="s Compound">{
            <span class="lc">// Clear current properties.</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">shortDatePattern_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">longDatePattern_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">shortTimePattern_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">yearMonthPattern_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">monthDayPattern_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">generalShortTimePattern_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">generalLongTimePattern_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">fullDateTimePattern_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">shortDatePatterns_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">longDatePatterns_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">yearMonthPatterns_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">abbreviatedDayNames_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">abbreviatedMonthNames_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">dayNames_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
            <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">monthNames_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
          }</span></span>
          <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">calendar_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
          <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">initialize</span></span>()</span>;</span>
          <span class="s Return"><span class="k">return</span>;</span>
        }</span></span>
      }</span></span>
      <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">error</span></span>(<span class="sl">"Not a valid calendar for the culture."</span>)</span>;</span>
    }</span></span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_firstDayOfWeek)
   * $(I Property.) Retrieves the first day of the week.
   * Returns: A DayOfWeek value indicating the first day of the week.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Qualified"><span class="t Identifier"><span class="i">Calendar</span></span>.<span class="t Identifier"><span class="i">DayOfWeek</span></span></span> <span class="i">firstDayOfWeek</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Cast"><span class="k">cast</span>(<span class="t Qualified"><span class="t Identifier"><span class="i">Calendar</span></span>.<span class="t Identifier"><span class="i">DayOfWeek</span></span></span>)<span class="e Identifier"><span class="i">firstDayOfWeek_</span></span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the first day of the week.
   * Params: valie = A DayOfWeek value indicating the first day of the week.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">firstDayOfWeek</span><span class="o Parameters">(<span class="o Parameter"><span class="t Qualified"><span class="t Identifier"><span class="i">Calendar</span></span>.<span class="t Identifier"><span class="i">DayOfWeek</span></span></span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">firstDayOfWeek_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_calendarWeekRule)
   * $(I Property.) Retrieves the _value indicating the rule used to determine the first week of the year.
   * Returns: A CalendarWeekRule _value determining the first week of the year.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Qualified"><span class="t Identifier"><span class="i">Calendar</span></span>.<span class="t Identifier"><span class="i">WeekRule</span></span></span> <span class="i">calendarWeekRule</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Cast"><span class="k">cast</span>(<span class="t Qualified"><span class="t Identifier"><span class="i">Calendar</span></span>.<span class="t Identifier"><span class="i">WeekRule</span></span></span>) <span class="e Identifier"><span class="i">calendarWeekRule_</span></span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the _value indicating the rule used to determine the first week of the year.
   * Params: value = A CalendarWeekRule _value determining the first week of the year.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">calendarWeekRule</span><span class="o Parameters">(<span class="o Parameter"><span class="t Qualified"><span class="t Identifier"><span class="i">Calendar</span></span>.<span class="t Identifier"><span class="i">WeekRule</span></span></span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">calendarWeekRule_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_nativeCalendarName)
   * $(I Property.) Retrieves the native name of the calendar associated with the current instance.
   * Returns: The native name of the calendar associated with the current instance.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">nativeCalendarName</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">nativeCalName</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_dateSeparator)
   * $(I Property.) Retrieves the string separating date components.
   * Returns: The string separating date components.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">dateSeparator</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">dateSeparator_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">dateSeparator_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">date</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">dateSeparator_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string separating date components.
   * Params: value = The string separating date components.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">dateSeparator</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">dateSeparator_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_timeSeparator)
   * $(I Property.) Retrieves the string separating time components.
   * Returns: The string separating time components.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">timeSeparator</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">timeSeparator_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">timeSeparator_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">time</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">timeSeparator_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string separating time components.
   * Params: value = The string separating time components.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">timeSeparator</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">timeSeparator_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_amDesignator)
   * $(I Property.) Retrieves the string designator for hours before noon.
   * Returns: The string designator for hours before noon. For example, "AM".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">amDesignator</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assert"><span class="k">assert</span>(<span class="e Identity"><span class="e Identifier"><span class="i">amDesignator_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)</span>;</span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">amDesignator_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string designator for hours before noon.
   * Params: value = The string designator for hours before noon.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">amDesignator</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">amDesignator_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_pmDesignator)
   * $(I Property.) Retrieves the string designator for hours after noon.
   * Returns: The string designator for hours after noon. For example, "PM".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">pmDesignator</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assert"><span class="k">assert</span>(<span class="e Identity"><span class="e Identifier"><span class="i">pmDesignator_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)</span>;</span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">pmDesignator_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the string designator for hours after noon.
   * Params: value = The string designator for hours after noon.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">pmDesignator</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">pmDesignator_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_shortDatePattern)
   * $(I Property.) Retrieves the format pattern for a short date value.
   * Returns: The format pattern for a short date value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">shortDatePattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assert"><span class="k">assert</span>(<span class="e Identity"><span class="e Identifier"><span class="i">shortDatePattern_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)</span>;</span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">shortDatePattern_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the format pattern for a short date _value.
   * Params: value = The format pattern for a short date _value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">shortDatePattern</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">shortDatePatterns_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Index"><span class="e Identifier"><span class="i">shortDatePatterns_</span></span>[<span class="e Int"><span class="n">0</span></span>]</span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span></span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">shortDatePattern_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">generalLongTimePattern_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">generalShortTimePattern_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_shortTimePattern)
   * $(I Property.) Retrieves the format pattern for a short time value.
   * Returns: The format pattern for a short time value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">shortTimePattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">shortTimePattern_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">shortTimePattern_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">shortTime</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">shortTimePattern_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the format pattern for a short time _value.
   * Params: value = The format pattern for a short time _value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">shortTimePattern</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">shortTimePattern_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">generalShortTimePattern_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_longDatePattern)
   * $(I Property.) Retrieves the format pattern for a long date value.
   * Returns: The format pattern for a long date value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">longDatePattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assert"><span class="k">assert</span>(<span class="e Identity"><span class="e Identifier"><span class="i">longDatePattern_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)</span>;</span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">longDatePattern_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the format pattern for a long date _value.
   * Params: value = The format pattern for a long date _value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">longDatePattern</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">longDatePatterns_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Index"><span class="e Identifier"><span class="i">longDatePatterns_</span></span>[<span class="e Int"><span class="n">0</span></span>]</span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span></span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">longDatePattern_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">fullDateTimePattern_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_longTimePattern)
   * $(I Property.) Retrieves the format pattern for a long time value.
   * Returns: The format pattern for a long time value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">longTimePattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assert"><span class="k">assert</span>(<span class="e Identity"><span class="e Identifier"><span class="i">longTimePattern_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)</span>;</span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">longTimePattern_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the format pattern for a long time _value.
   * Params: value = The format pattern for a long time _value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">longTimePattern</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">longTimePattern_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">fullDateTimePattern_</span></span> = <span class="e Null"><span class="k">null</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_monthDayPattern)
   * $(I Property.) Retrieves the format pattern for a month and day value.
   * Returns: The format pattern for a month and day value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">monthDayPattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">monthDayPattern_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">monthDayPattern_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">monthDay</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">monthDayPattern_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the format pattern for a month and day _value.
   * Params: value = The format pattern for a month and day _value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">monthDayPattern</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">monthDayPattern_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_yearMonthPattern)
   * $(I Property.) Retrieves the format pattern for a year and month value.
   * Returns: The format pattern for a year and month value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">yearMonthPattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Assert"><span class="k">assert</span>(<span class="e Identity"><span class="e Identifier"><span class="i">yearMonthPattern_</span></span> !<span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)</span>;</span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">yearMonthPattern_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the format pattern for a year and month _value.
   * Params: value = The format pattern for a year and month _value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">yearMonthPattern</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">yearMonthPattern_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_abbreviatedDayNames)
   * $(I Property.) Retrieves a string array containing the abbreviated names of the days of the week.
   * Returns: A string array containing the abbreviated names of the days of the week. For $(LINK2 #DateTimeFormat_invariantFormat, invariantFormat),
   *   this contains "Sun", "Mon", "Tue", "Wed", "Thu", "Fri" and "Sat".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">abbreviatedDayNames</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">abbreviatedDayNames_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">abbreviatedDayNames_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">abbrevDayNames</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">abbreviatedDayNames_</span></span>.<span class="e Identifier"><span class="i">dup</span></span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns a string array containing the abbreviated names of the days of the week.
   * Params: value = A string array containing the abbreviated names of the days of the week.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">abbreviatedDayNames</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">abbreviatedDayNames_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_dayNames)
   * $(I Property.) Retrieves a string array containing the full names of the days of the week.
   * Returns: A string array containing the full names of the days of the week. For $(LINK2 #DateTimeFormat_invariantFormat, invariantFormat),
   *   this contains "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" and "Saturday".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">dayNames</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">dayNames_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">dayNames_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">dayNames</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">dayNames_</span></span>.<span class="e Identifier"><span class="i">dup</span></span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns a string array containing the full names of the days of the week.
   * Params: value = A string array containing the full names of the days of the week.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">dayNames</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">dayNames_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_abbreviatedMonthNames)
   * $(I Property.) Retrieves a string array containing the abbreviated names of the months.
   * Returns: A string array containing the abbreviated names of the months. For $(LINK2 #DateTimeFormat_invariantFormat, invariantFormat),
   *   this contains "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" and "".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">abbreviatedMonthNames</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">abbreviatedMonthNames_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">abbreviatedMonthNames_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">abbrevMonthNames</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">abbreviatedMonthNames_</span></span>.<span class="e Identifier"><span class="i">dup</span></span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns a string array containing the abbreviated names of the months.
   * Params: value = A string array containing the abbreviated names of the months.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">abbreviatedMonthNames</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">abbreviatedMonthNames_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_monthNames)
   * $(I Property.) Retrieves a string array containing the full names of the months.
   * Returns: A string array containing the full names of the months. For $(LINK2 #DateTimeFormat_invariantFormat, invariantFormat),
   *   this contains "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" and "".
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">monthNames</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">monthNames_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">monthNames_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">monthNames</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Dot"><span class="e Identifier"><span class="i">monthNames_</span></span>.<span class="e Identifier"><span class="i">dup</span></span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns a string array containing the full names of the months.
   * Params: value = A string array containing the full names of the months.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">monthNames</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">monthNames_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_fullDateTimePattern)
   * $(I Property.) Retrieves the format pattern for a long date and a long time value.
   * Returns: The format pattern for a long date and a long time value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">fullDateTimePattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">fullDateTimePattern_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">fullDateTimePattern_</span></span> = <span class="e Cat"><span class="e Cat"><span class="e Identifier"><span class="i">longDatePattern</span></span> ~ <span class="e String"><span class="sl">" "</span></span></span> ~ <span class="e Identifier"><span class="i">longTimePattern</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">fullDateTimePattern_</span></span>;</span>
  }</span></span></span></span></span>
  <span class="bc">/**
   * $(I Property.) Assigns the format pattern for a long date and a long time _value.
   * Params: value = The format pattern for a long date and a long time _value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">fullDateTimePattern</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">value</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">checkReadOnly</span></span>()</span>;</span>
    <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">fullDateTimePattern_</span></span> = <span class="e Identifier"><span class="i">value</span></span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_rfc1123Pattern)
   * $(I Property.) Retrieves the format pattern based on the IETF RFC 1123 specification, for a time value.
   * Returns: The format pattern based on the IETF RFC 1123 specification, for a time value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">rfc1123Pattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">rfc1123Pattern_</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_sortableDateTimePattern)
   * $(I Property.) Retrieves the format pattern for a sortable date and time value.
   * Returns: The format pattern for a sortable date and time value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">sortableDateTimePattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">sortableDateTimePattern_</span></span>;</span>
  }</span></span></span></span></span>

  <span class="bc">/**
   * $(ANCHOR DateTimeFormat_universalSortableDateTimePattern)
   * $(I Property.) Retrieves the format pattern for a universal date and time value.
   * Returns: The format pattern for a universal date and time value.
   */</span>
  <span class="d Protection"><span class="k">public</span> <span class="d StorageClass"><span class="k">final</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">universalSortableDateTimePattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">universalSortableDateTimePattern_</span></span>;</span>
  }</span></span></span></span></span>

  <span class="d Protection"><span class="k">package</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">generalShortTimePattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">generalShortTimePattern_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">generalShortTimePattern_</span></span> = <span class="e Cat"><span class="e Cat"><span class="e Identifier"><span class="i">shortDatePattern</span></span> ~ <span class="e String"><span class="sl">" "</span></span></span> ~ <span class="e Identifier"><span class="i">shortTimePattern</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">generalShortTimePattern_</span></span>;</span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">package</span> <span class="d Function"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">generalLongTimePattern</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">generalLongTimePattern_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">generalLongTimePattern_</span></span> = <span class="e Cat"><span class="e Cat"><span class="e Identifier"><span class="i">shortDatePattern</span></span> ~ <span class="e String"><span class="sl">" "</span></span></span> ~ <span class="e Identifier"><span class="i">longTimePattern</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">generalLongTimePattern_</span></span>;</span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">checkReadOnly</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identifier"><span class="i">isReadOnly_</span></span>)
        <span class="s Expression"><span class="e Call"><span class="e Identifier"><span class="i">error</span></span>(<span class="sl">"DateTimeFormat instance is read-only."</span>)</span>;</span></span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">initialize</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">longTimePattern_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">longTimePattern_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">longTime</span></span></span></span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">shortDatePattern_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">shortDatePattern_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">shortDate</span></span></span></span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">longDatePattern_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">longDatePattern_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">longDate</span></span></span></span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">yearMonthPattern_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">yearMonthPattern_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">yearMonth</span></span></span></span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">amDesignator_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">amDesignator_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">am</span></span></span></span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">pmDesignator_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">pmDesignator_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">pm</span></span></span></span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">firstDayOfWeek_</span></span> <span class="k">is</span> <span class="e Sign">-<span class="e Int"><span class="n">1</span></span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">firstDayOfWeek_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">firstDayOfWeek</span></span></span></span>;</span></span>
    <span class="s If"><span class="k">if</span> (<span class="e Equal"><span class="e Identifier"><span class="i">calendarWeekRule_</span></span> == <span class="e Sign">-<span class="e Int"><span class="n">1</span></span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">calendarWeekRule_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">firstDayOfYear</span></span></span></span>;</span></span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d Function"><span class="t Integral"><span class="k">int</span></span><span class="t Array">[]</span> <span class="i">optionalCalendars</span><span class="o Parameters">()</span> <span class="s FuncBody"><span class="s Compound">{
    <span class="s If"><span class="k">if</span> (<span class="e Identity"><span class="e Identifier"><span class="i">optionalCalendars_</span></span> <span class="k">is</span> <span class="e Null"><span class="k">null</span></span></span>)
      <span class="s Expression"><span class="e Assign"><span class="e Identifier"><span class="i">optionalCalendars_</span></span> = <span class="e Dot"><span class="e Identifier"><span class="i">cultureData_</span></span>.<span class="e Identifier"><span class="i">optionalCalendars</span></span></span></span>;</span></span>
    <span class="s Return"><span class="k">return</span> <span class="e Identifier"><span class="i">optionalCalendars_</span></span>;</span>
  }</span></span></span></span>

  <span class="d Protection"><span class="k">private</span> <span class="d Function"><span class="t Integral"><span class="k">void</span></span> <span class="i">error</span><span class="o Parameters">(<span class="o Parameter"><span class="t Integral"><span class="k">char</span></span><span class="t Array">[]</span> <span class="i">msg</span></span>)</span> <span class="s FuncBody"><span class="s Compound">{
     <span class="s Throw"><span class="k">throw</span> <span class="e New"><span class="k">new</span> <span class="t Identifier"><span class="i">LocaleException</span></span> (<span class="e Identifier"><span class="i">msg</span></span>)</span>;</span>
  }</span></span></span></span>

}</span></span></span></span>



</pre></td>
</tr></table>
</body>
</html>